pptpd VPN: No internet access after connecting
I’ve followed the instructions in this tutorial to set up a vpn server, so that I can connect to that and surf the internet virtually from another location. So far from windows, I can connect to it but there is no internet access. The ip addresses that I used in the conf file is exactly the same as in the tutorial
localip 192.168.0.1 remoteip 192.168.0.100-200
Same for the DNS which is 8.8.8.8. (Everything you need to know about what I’ve done is already in that link) What do you think could be the problem ?
@meccooll: Sorry for my previous comment, that netstat worked like a magic. I’m through now but HTTPS websites not getting opened, the browser says SSL Connection Problem, do you have any idea ?
3 Answers 3
If your main purpose of setting up the VPN server is to access website, So traffic has to be forwarded out of the VPN server’s public network interface.Thus, kindly enable port forwarding by editing the sysctl.conf file. I assume “net.ipv4.ip_forward” is commented in the /etc/sysctl.conf file:
Add or find and comment out the following line
Save, close the file and run the following command to make the changes take effect.
The following iptables firewall rules allow port 1723, GRE and perform NAT
iptables -I INPUT -p tcp --dport 1723 -m state --state NEW -j ACCEPT iptables -I INPUT -p gre -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
In the last rule replace “eth0″ with the interface connecting to the internet on your VPN server. Finally the following rule is required to ensure websites load properly
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -s 172.20.1.0/24 -j TCPMSS --clamp-mss-to-pmtu
Replace 172.20.1.0/24 with the IP address range used in the “remoteip” option in the /etc/pptpd.conf this firewall rule is used to ensure a proper MTU value is used to prevent fragmentation.
The following command solved my problem (No internet) using PPTPD on Ubuntu 14.x
iptables -I INPUT -p tcp --dport 1723 -m state --state NEW -j ACCEPT iptables -I INPUT -p gre -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -s 10.0.0.0/24 -j TCPMSS --clamp-mss-to-pmtu sudo iptables-save sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables-save
Please note: I used this IP address range 10.0.0.0/24 in my /etc/pptpd.conf use the range that matches your config as well.
We had identical symptoms, but all the Iptables where set as above. It was possible to connect, the connection was stable, it did allow to login to the pptp server via ssh and, in the remote machine, even to resolve DNS (noticeable via browers and ping — as it did resolve correctly the IP), but webpages did not load, neither was possible to connect to other severs via ssh. This made clear that the tunnel was ok to the pptp server.
The problem was the fact that I had in this machine two independent up-links exposed to internet (ie. mainInf and support), both configured via netplan (no problem with that) but, despite connecting to the pptp server using the IP address of the 1st up-link (i-face called mainInf), my default gateway was running in the seccond up-link (support).
The solution was to adjust the NAT to the correct output gateway and that allowed packets to reach other servers it was initially (not working)
iptables -t nat -I POSTROUTING -o mainInf -j MASQUERADE
(have in your mind that, in our case, the connection to the pptp server is via an IP allocated in the mainInf adapter/uplink) and after changing to the same adapter/uplink as the default gateway (support), it worked:
iptables -t nat -I POSTROUTING -o support -j MASQUERADE
Hence, if you can stability the VPN connection, ping or connect the pptp server (via ssh in our case), but cannot reach any IP that is not in that server, you probably have a routing/forwarding issue.
4 helpful commands for troubleshoting:
- watch iptables -t nat -L -nv
- watch iptables -L -nv
- route -n
- tcpdump -i -s 0 tcp port 1723 or proto 47 (read more here)
После старта openvpn клиента пропадает доступ через интернет
И успешно — локальные хосты на той стороне доступны, могу подключиться к нем через ssh, например. Но вот беда: сразу после старта клиента не могу никуда зайти через браузер — все страницы оказываются недоступны. До этого ни разу не пользовался openvpn — подскажите хотя бы с чего начать поиск проблемы? Спасибо.
попробуйте настроить подключение через графический интерфейс, скорее всего у вас появится возможность через настройки подключиться по VPN с указанием протокола OpenVPN. и там есть галочка, она называется примерно как «Использовать это соединение только для ресурсов этой сети», отмечаете эту галку для вашего VPN-соединения и проблема скорее всего будет решена.
также в конфиге можно попробовать добавить строку «route-method exe» (без кавычек) по моему это тоже решает проблему
в данном случае как настроен сервер не имеет особого значения, так как у вас уже клиент пытается добавить в роутинг данные с сервера, а там видимо запрещено трафик через него гонять (по умолчанию вроде так и работает) и эта галочка дает понять клиенту, чтобы он роутинг добавлял не для всего подряд, а только для IP из сети VPN.. примерно так.
1 ответ 1
Столкнулся с такой же проблемой. Ubuntu 20.04, OpenVPN, использую настройки через GUI, хотя разницы по проблеме не заметил, запускать через консоль или интерфейс.
Можно предположить, что на это влияют настройки сервера VPN, к которому идет подключение. Он отправляет конфигурацию для автоматической настройки вашей сети (маршруты, DNS, шлюзы) и отсюда появляются проблемы.
Я нашел 4 варианта исправления проблемы, я воспользовался сначала третьим, затем вторым:
- Обратиться к админам VPN и сообщить о проблеме. Если это их работа, то они должны помочь. Конфигурация той сети не должна влиять на вашу (ее решаете не вы, а администратор сети, к которой подключаетесь).
- В настройках VPN в GUI (если через GUI идет подключение) указать «Использовать это подключение только для ресурсов в этой сети» («Use only for resources on this connection»). Нужные маршруты заработают, и интернет будет работать. НО! Если вы используете не IP-адреса, а именованные адреса серверов, например, myhost.host.local, то они скорее всего не будут работать. Вместо этого, для подключения нужно использовать IP-адреса этих хостов. Чтобы получить IP-адреса, можно использовать команду traceroute , который выведет конечный IP-адрес хоста, если он доступен. Чтобы получить его адрес, у вас должна быть отключена галочка «Использовать это подключение только для ресурсов этой сети». Получив список IP-адресов вы можете указать их в файле /etc/hosts в соответствии с адресом или же везде, где вы используете именованные адреса, заменить их на IP-адреса. Эффект будет такой же, но во втором случае не требуются права root. Вы также можете спросить у администраторов уже готовый список этих именованных хостов и адресов.
- Эффекта, который был достигнут в пункте 2, можно достигнуть путем указания конкретных маршрутов для конкретных IP-адресов. Для этого можно воспользоваться той же командой traceroute , а также route -n . В результате этих команд вы получите список нужных вам адресов, как в решении 2 и укажите их в маршрутах для настройки сети. Можно также попробовать указать целую подсеть, если для вашей сети это актуально.
- Можно в ваш файл конфигурации VPN указать опцию pull-filter ignore «dhcp-option DNS» . В этом случае вы столкнетесь с такими же проблемами как и в пункте 2 и решить их нужно будет также.
Как настроить доступ к интернету после подключения VPN на Linux?
Доброго времени суток!
Столкнулся с такой проблемой, на работе для удаленного доступа используется vpn с протоколом PPTP. После подключения к сети по vpn на компьютере пропадает интернет. На винде эта проблема решается, если убрать галочку у пункта «Использовать основной шлюз удаленной сети», но как на Linux исправить данную ситуацию?
Указать основной шлюз на Linux.
Обычно это 192.168.1.1 в подавляющем большинстве случаев.
Короче, default gw выставить ваш обычный, не от VPN.
Если настраиваете через GUI, то отметить «Использовать только для ресурсов этой сети» (Use this connection only for resources on its network)
Если сами в конфиги залезли, то убрать defaultroute/replacedefaultroute
LVitA, как выглядят адреса офиса? Что показывает ip r?
Похоже нужно добавить маршрут для офисной сети. Вероятно вам проще будет выяснить какой это должен быть маршрут у вашего системного администратора.
neol, адрес офиса 192.168.0.3
выхлоп ip r:
default via 192.168.1.1 dev wlp2s0 proto dhcp metric 600
109.167.215.39 via 192.168.1.1 dev wlp2s0 src 192.168.1.4
109.167.215.39 via 192.168.1.1 dev wlp2s0 proto static metric 600
169.254.0.0/16 dev docker0 scope link metric 1000 linkdown
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-9d5f5fed16e8 proto kernel scope link src 172.18.0.1
172.21.0.0/16 via 192.168.1.1 dev wlp2s0
192.168.0.254 dev ppp0 proto kernel scope link src 192.168.0.230 metric 50
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.4 metric 600
192.168.1.1 dev wlp2s0 proto static scope link metric 600