OpenVPN подключается, но нет доступа в интернет

OpenVPN подключается, но нет доступа в интернет

Я не могу понять, почему не работает мое соединение openvpn. Кажется, что оно работает нормально при подключении. Я могу подключиться к своему серверу, но однажды, когда я подключен, я не могу использовать интернет через vpn.

Это VPS-сервер, работающий на Debian.

Вот мой файл 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

Итак, я попробовал соединение OpenVPN на моем компьютере с Linux и на Virtualbox XP, и на обоих устройствах соединение есть, но ни на одном из них нет доступа к Интернету после подключения.

Самое странное во всем этом то, что когда я провожу трассировку, она показывает соединение через VPN.

Например я делаю traceroute 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, а также когда я пингую, пинг увеличивается до 100 мс, в то время как когда я не подключен к vpn, пинг составляет около 20 мс.

Но когда я пытаюсь выйти в интернет с помощью любой программы (firefox, chrome, iexplorer), я ничего не получаю. Ничего не загружается и соединение прерывается.

Дело не в том, что мой сервер медленный и страницы не загружаются. Тест скорости показывает скорость соединения на сервере около 70 Мбит/с, а у меня соединение 6 Мбит/с.

И когда я пытаюсь подключиться к другому vpn, например cloudnymous, все работает нормально. Это просто что-то не так в моей настройке openvpn.

EDIT: После того, как я думал, что наконец-то заставил это работать, после множества настроек я, наконец, могу подключиться к своему VPN и выйти в Интернет оттуда.

Теперь у меня есть одна последняя проблема. Так как я использую Linux, несколько программ здесь не работают, и я использую VirtualBox с установкой Windows XP, но при подключении к VPN на VirtualBox я могу серфить в Интернете. Но ни одна программа не может подключиться к Интернету. Также мое VPN-подключение время от времени теряет Интернет, и это не мой Интернет или подключение к серверу, потому что в это время, когда я теряю Интернет через VPN, я все еще могу подключиться к серверу с помощью Putty по SSH и делать различные вещи.

решение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/x— это подсеть VPN — 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 была настроена с реальным IP-адресом, а не с переменной $MY_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-адрес для сервера, что и раньше, мне бы не пришлось долго ломать голову.

Связанный контент