OpenVPN이 연결되지만 인터넷에 액세스할 수 없습니다.

OpenVPN이 연결되지만 인터넷에 액세스할 수 없습니다.

내 openvpn 연결이 작동하지 않는 이유를 알 수 없습니다. 연결하면 잘 되는 것 같습니다. 서버에 연결할 수 있지만 일단 연결되면 VPN을 통해 인터넷을 사용할 수 없습니다.

Debian에서 실행되는 VPS 서버입니다.

여기 내 openvpn server.conf 파일이 있습니다.

port 1194

proto udp

dev tun

ca ca.crt
cert server.crt
key server.key  # This file should be kept secret

dh dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "redirect-gateway def1"

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

keepalive 10 120

comp-lzo

user nobody
group nogroup

persist-key
persist-tun

status openvpn-status.log

log         openvpn.log

verb 6

mute 20

그리고 여기 내 client.conf 파일이 있습니다.

client

dev tun

proto udp

remote server_ip 1194

resolv-retry infinite

nobind

persist-key
persist-tun

ca ca.crt
cert client.crt
key client.key

ns-cert-type server

comp-lzo

verb 3

remote-cert-tls server

연결과 경로를 허용하기 위해 방화벽 규칙도 추가했지만 이상한 점은 일부 규칙이 여러 번 나타난다는 것입니다. 여기 내 iptables 저장 파일이 있습니다.

# Generated by iptables-save v1.4.8 on Sun Dec 22 04:36:18 2013
*nat
:PREROUTING ACCEPT [53:9749]
:POSTROUTING ACCEPT [9:675]
:OUTPUT ACCEPT [9:675]
-A PREROUTING -d server_ip/32 -p udp -m udp --dport 53 -j REDIRECT --to-ports 1194 
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source server_ip 
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 
COMMIT
# Completed on Sun Dec 22 04:36:18 2013
# Generated by iptables-save v1.4.8 on Sun Dec 22 04:36:18 2013
*filter
:INPUT ACCEPT [946:112417]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [824:172939]
-A INPUT -i tun0 -p tcp -m tcp --dport 1194 -j ACCEPT 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 10.8.0.0/24 -j ACCEPT 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 10.8.0.0/24 -j ACCEPT 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 10.8.0.0/24 -o eth0 -j ACCEPT 
COMMIT
# Completed on Sun Dec 22 04:36:18 2013

또한 /etc/sysctl.conf를 확인하여

net.ipv4.ip_forward=1

나 또한

net.ipv6.conf.all.forwarding=1

그래서 저는 Linux PC와 Virtualbox XP에서 OpenVPN 연결을 시도했는데 둘 다 연결되어 있지만 연결되면 어느 것도 인터넷에 액세스할 수 없습니다.

가장 이상한 점은 Traceroute를 수행할 때 VPN을 통한 연결이 표시된다는 것입니다.

예를 들어 나는 google.com을 추적합니다.

1 my ip from vpn connection
2 openvpn server ip
3 ...
4 ...
5 ... few hops between server to google
6 and finally google server ip

그래서 Traceroute는 연결이 VPN을 통해 이루어짐을 보여주고, 또한 Ping을 할 때 Ping이 20ms 정도일 때 VPN에 연결되어 있지 않을 때 Ping이 100ms 차이로 증가합니다.

하지만 어떤 프로그램(firefox, chrome, iexplorer)으로 인터넷을 탐색하려고 하면 아무것도 얻지 못합니다. 아무것도 로드되지 않으며 연결 시간이 초과됩니다.

내 서버가 느려서 페이지가 로드되지 않는 것은 아닙니다. 속도 테스트에서는 서버에서 약 70mbit 연결이 표시되고 6mbit 연결이 있습니다.

그리고 cloudnymous와 같은 다른 VPN에 연결하려고 하면 모든 것이 잘 작동합니다. OpenVPN 설정에 문제가 있는 것 같습니다.

편집: 마침내 작동하게 되었다고 생각했는데, 많은 설정을 조작한 후에 마침내 VPN에 연결하고 그곳에서 인터넷에 접속할 수 있었습니다.

이제 마지막 문제가 하나 남았습니다. 저는 Linux를 사용하고 있기 때문에 여기에서는 몇 가지 프로그램이 작동하지 않으며 Windows XP 설치와 함께 virtualbox를 사용하지만 virtualbox에서 VPN에 연결하면 인터넷 서핑을 할 수 있습니다. 하지만 어떤 프로그램도 인터넷에 연결할 수 없습니다. 또한 내 VPN 연결이 때때로 인터넷을 잃고 있는데, 내 인터넷이나 서버 연결이 아닙니다. 왜냐하면 VPN을 통해 인터넷이 끊어진 동안에도 SSH를 통해 Putty를 사용하여 서버에 연결하고 다양한 작업을 수행할 수 있기 때문입니다.

답변1

매스커레이딩은 VPS에서 작동하지 않습니다. iptables Source NAT대신 다음을 사용해야 합니다.

iptables -t nat -A POSTROUTING -s 10.x.x.x/xx -j SNAT --to-source y.y.y.y

x.x.x.x/xVPN 서브넷 - y.y.y.y서버 출력 인터페이스의 IP 주소입니다.

답변2

/etc/default/ufw서버에 방화벽이 있는지 확인한 DEFAULT_FORWARD_POLICY="ACCEPT"다음 다시 시작하세요."DROP"

sudo ufw disable
sudo ufw enable

답변3

라우터를 변경할 때까지 OpenVPN이 정상적으로 작동하는 비슷한 문제가 있었습니다. 필요한 포트를 열었지만 라우터 방화벽을 의심했습니다. 그러나 rc.local을 살펴보니 처음 구성했을 때 iptables 줄이 내가 예상했던 $MY_IP 변수가 아닌 실제 IP 주소로 설정되어 있었습니다.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to 192.168.0.15

대신:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to $MY_IP

문제는 라우터가 서버에 다른 IP를 할당하도록 변경하는 것이었고 방금 새 IP를 예약했고 모두 작동할 것으로 예상했습니다.

서버에 이전과 동일한 IP를 예약했다면 머리를 긁는 일을 많이 줄일 수 있었을 것입니다.

관련 정보