3

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

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

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

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

РЕДАКТИРОВАТЬ: В конце концов я думал, что наконец-то все заработало, после того, как я поработал со многими настройками, я наконец-то смог подключиться к своему VPN и получить оттуда интернет.

Теперь у меня есть одна последняя проблема. Поскольку я работаю в Linux, некоторые программы здесь не работают, и я использую virtualbox с установкой Windows XP, но при подключении к vpn в virtualbox я могу выходить в Интернет. Но ни одна программа не может подключиться к интернету. Кроме того, мое vpn-соединение время от времени теряет интернет, и это не мое интернет-соединение или соединение с сервером, потому что в то время, когда я теряю интернет через vpn, я все еще могу соединиться с putty через ssh к серверу и делать разные вещи.

2 ответа2

0

Маскарадинг не работает на 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-адрес выходного интерфейса вашего сервера.

-1

У меня была похожая проблема, когда OpenVPN работал нормально, пока я не сменил маршрутизатор. Я подозревал брандмауэр маршрутизатора, хотя я открыл необходимые порты. Однако я посмотрел на rc.local и увидел, что при первой настройке строка iptables была настроена на фактический IP-адрес, а не на переменную $ MY_IP, которую я ожидал, вот так:

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

скорее, чем:

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

Проблема заключалась в изменении маршрутизатора, назначившего другой IP-адрес серверу, и я просто зарезервировал новый IP-адрес и ожидал, что все будет работать.

Если бы я зарезервировал тот же IP-адрес для сервера, что и раньше, я бы сэкономил много царапин на голове.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .