在家里通过 VPN 连接到我的研究所后
sudo openvpn --config /home/myname/thinkpad1/thinkpad1.ovpn
我无法浏览网页。(连接本身似乎正常,显示“初始化序列已完成”)。在命令行上分析问题时,我看到:
ping google.com
没有给出答案,而
ping 8.8.8.8
成功了。
但打电话
http://8.8.8.8
在浏览器中不成功。
进一步:表演
route -n
我得到:
(1)无需VPN连接
Kernel-IP-Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan0
(2)使用VPN
Kernel-IP-Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.217 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlan0
10.8.0.1 10.8.0.217 255.255.255.255 UGH 0 0 0 tun0
10.8.0.217 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.8.0.217 128.0.0.0 UG 0 0 0 tun0
147.142.19.56 192.168.0.1 255.255.255.255 UGH 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan0
编辑:无论是使用 VPN up 还是 VPN down,命令
ls -al /etc/resolv.conf
带来
lrwxrwxrwx 1 root root 29 Jan 13 2016 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
和
cat /etc/resolv.conf
带来
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search box
和
systemd-resolve --status
说“未知选项”
我试过
systemd-resolve --version
并得到
systemd 229
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN
命令
ls -al /etc/openvpn
收益 20
drwxr-xr-x 2 root root 4096 Aug 22 12:38 .
drwxr-xr-x 161 root root 12288 Aug 23 11:52 ..
-rwxr-xr-x 1 root root 1301 Jun 22 2017 update-resolv-conf
和
grep -i -A3 script-security /home/myname/thinkpad1/thinkpad1.ovpn
没有任何结果。
哪里
dpkg -l resolv*
给出
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-==============-============-============-=================================
ii resolvconf 1.78ubuntu7 all name server information handler
答案1
sudo -H gedit /home/myname/thinkpad1/thinkpad1.ovpn
# 编辑此 .ovpn 文件
将以下内容添加到.ovpn 文件的末尾...
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
保存文件并退出 gedit。
重试...
sudo openvpn --config /home/myname/thinkpad1/thinkpad1.ovpn
# 启动 VPN
答案2
您的机器是否使用 DHCP?如果没有,则需要以其他方式设置 DNS 服务器。
另外,您还应该验证这确实是一个 DNS 配置问题...例如使用以下命令查看您的服务器:
$ cat /etc/resolv.conf
...
$ nslookup
> server
Default server: ... (some ip... if it's your normal non-vpn DNS server, this test fails...it should be something behind the VPN probably)
Address: ...
>
我所做的是......在您的配置文件(可能名为client.ovpn
)中,您可以添加如下行:
script-security 2
route-up connect up
route-pre-down connect down
然后在命名的脚本中connect
(与 ovpn 文件位于同一目录中),您可以使用一些代码来执行您需要的操作……例如:
- 备份旧文件
/etc/resolv.conf
(使用 mv,而不是 cp...否则硬关机可能会损坏文件) - 写一个新的,可能用另一个名称和符号链接
ln -s /etc/resolv.conf.vpn /etc/resolv.conf
- 并且(真恶心,但不知道还有什么其他办法)启用关机/启动 init/rc 脚本,如果您不小心停止计算机,该脚本将用原始脚本替换它(因此 route-pre-down 永远不会运行)。
- 而且我所做的不是在原始文件中包括以上 3 行,而是使用
connect
不带参数的命令将它们附加到新文件中并像openvpn client.ovpn.generated
最糟糕的是……由于未知原因,这在一台特定的机器上不起作用,该机器的 DHCP 也无法正常工作,因此目前使用的无问题但仍然糟糕的解决方案是像我描述的静态一样执行它,但也在chattr +i /etc/resolv.conf
脚本中,chattr -i /etc/resolv.conf
在那里,也在关机/启动 init/rc 脚本中。这当然是错误的方法,但我还没有找到符合通常的发行版网络脚本的正确方法。我希望你的运气比这台机器好。