OpenVPN 클라이언트는 서버에 대해 ping을 수행할 수 있지만 www.google.com에 대해 ping을 수행할 수는 없습니다.

OpenVPN 클라이언트는 서버에 대해 ping을 수행할 수 있지만 www.google.com에 대해 ping을 수행할 수는 없습니다.

다음과 같이 Ubuntu vps에서 Openvpn을 설정했습니다.이것.

이 사람은 내 고객이에요route -n

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
0.0.0.0         122.84.124.1    0.0.0.0         UG    0      0        0 ppp0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
10.8.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
122.84.124.1    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ppp0
183.181.60.117  122.84.124.1    255.255.255.255 UGH   0      0        0 ppp0

클라이언트에서는 할 수 있지만 ping 10.8.0.1그 외에는 인터넷에 액세스할 수 없는 것 같습니다. 나는 노력했다 mtr 8.8.8.8, 나는 얻는다

Host                          Lost% ...
1. 10.8.0.1                    0.0% ...
2. ???

서버에 있는 동안 mtr 8.8.8.8경로를 표시합니다.

무엇이 잘못되었을 수 있는지 조언해 주실 수 있나요? 감사해요!

답변1

서버에서 NAT 및 라우팅을 올바르게 설정해야 합니다.

mtr서버에서는 올바르게 작동하지만 클라이언트에서는 작동하지 않는 경우 서버에 다음과 같은 규칙을 추가해야 합니다.

# iptables -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source <public IP of server>

또한 서버에서 라우팅이 활성화되어 있는지 확인하십시오.

# sysctl net.ipv4.ip_forward 
net.ipv4.ip_forward = 0   <<< disabled
# sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1   <<< enabled

또는 시작 시 활성화하려면 net.ipv4.ip_forward1 in 으로 변경 /etc/sysctl.conf하고 을 실행하세요 sysctl -p.

답변2

유용할 경우를 대비해 다른 답변이 이미 승인되었습니다.

@petrus의 대답은 당신이 원한다고 가정합니다모든 인터넷 트래픽은 OpenVPN 네트워크를 통과합니다.. 그것이 당신이 원하는 것이라면 그렇게 하는 방법입니다.

그러나 해당 네트워크(예: 파일 서버/인트라넷)의 리소스에 액세스하는 데에만 OpenVPN이 필요하고 일반 인터넷 액세스에는 일반 인터넷 연결을 사용하는 것이 일반적입니다. 이 경우 OpenVPN을 통해 모든 트래픽을 라우팅하지 않도록 클라이언트 시스템에 지시하여 작업 속도를 높일 수 있습니다. 이를 수행하는 방법은 클라이언트 소프트웨어와 OS에 따라 다르지만 OpenVPN 클라이언트에서 이런 일이 발생하여 불필요한 속도 저하를 초래한다는 것을 알았기 때문에 이 기능을 제공하겠다고 생각했습니다.

관련 정보