OpenVpn Windows 客户端流量已路由,但 Linux 未路由

OpenVpn Windows 客户端流量已路由,但 Linux 未路由

我是 OpenVPN 新手。我在 Ubuntu 18.04 上设置了一个客户端可以连接的 OpenVPN 服务器。我已推送路由,以便所有网络流量都通过该服务器。Windows 客户端可以连接,并且可以访问所有本地资源和互联网。当我使用 Linux 客户端连接时,我只能访问服务器 10.8.0.1,无法访问互联网,也无法看到本地网络上的其他服务器或客户端。这是我的配置文件。我已删除注释。

服务器配置文件

port 1194  
proto tcp
;proto udp
;dev tap
dev tun
;dev-node MyTap
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh.pem
;topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
;server-bridge
push "route 10.8.0.1 255.255.255.255"
push "route 10.8.0.0 255.255.255.0"
push "route 172.168.0.21 255.255.255.255"
push "route 172.168.0.0 255.255.254.0"
;client-config-dir ccd
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
;learn-address ./script
push "redirect-gateway def1"
push "dhcp-option DNS 172.168.0.20"
push "dhcp-option DOMAIN bdlfire.local"
push "dhcp-option SEARCH bdlfire.local"
client-to-client
;duplicate-cn
keepalive 10 120
tls-auth ta.key 0 # This file is secret
key-direction 0
cipher AES-256-CBC
auth SHA256
;compress lz4-v2
;push "compress lz4-v2"
;comp-lzo
;max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
;log         /var/log/openvpn/openvpn.log
;log-append  /var/log/openvpn/openvpn.log
verb 3
;mute 20
explicit-exit-notify 0

Windows 配置客户端.ovpn

client
;dev tap
dev tun
;dev-node MyTap
proto tcp
;proto udp
remote xx.xx.xxx.xxx 1194
;remote my-server-2 1194
;remote-random
nobind
;user nobody
;group nobody
persist-key
persist-tun
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
cert client3.crt
key client3.key
remote-cert-tls server
tls-auth ta.key 0
key-direction 1
cipher AES-256-CBC
auth SHA256
verb 3
;mute 20
redirect-gateway

Linux 配置客户端.conf

client
;dev tap
dev tun
proto tcp
;proto udp
remote xx.xx.xxx.xxx 1194
;remote my-server-2 1194
;remote-random
resolv-retry infinite
nobind
;user nobody
;group nobody
persist-key
persist-tun
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
ca ca.crt
cert client1.crt
key client1.key
remote-cert-tls server
tls-auth ta.key 0
key-direction 1
cipher AES-256-CBC
auth SHA256
verb 3
;mute 20
redirect-gateway

任何帮助都将不胜感激。谢谢 Carl

我尝试运行路由命令并得到了此响应。

    Kernel IP routing table
Destination     Gateway     Genmask         Flags Metric Ref  Use Iface
0.0.0.0         10.8.0.5    128.0.0.0       UG    0      0      0 tun0
default         _gateway    0.0.0.0         UG    20600  0      0 wlp7s0
10.8.0.0        10.8.0.5    255.255.255.0   UG    0      0      0 tun0
10.8.0.1        10.8.0.5    255.255.255.255 UGH   0      0      0 tun0
10.8.0.5        0.0.0.0     255.255.255.255 UH    0      0      0 tun0
67.89.211.183   _gateway    255.255.255.255 UGH   0      0      0 wlp7s0
128.0.0.0       10.8.0.5    128.0.0.0       UG    0      0      0 tun0
link-local      0.0.0.0     255.255.0.0     U     1000   0      0 wlp7s0
172.168.0.0     10.8.0.5    255.255.254.0   UG    0      0      0 tun0
172.168.0.21    10.8.0.5    255.255.255.255 UGH   0      0      0 tun0
192.168.0.0     0.0.0.0     255.255.255.0   U     600    0      0 wlp7s0

这是我应该期待的吗?

答案1

您的客户端配置不用于pull获取从服务器推送的值。也许 Windows 版本pull默认使用。

答案2

OpenVPN 客户端需要 root 或管理员权限。Windows 上的社区客户端安装会自动将 OpenVPN 添加为服务,使其能够推送路由。

在某些 Linux 发行版中,OpenVPN 作为客户端并非以 root 身份启动,因此无法在连接时相应地推送路由。

您可以通过在连接到 OpenVPN(使用该程序)时查询客户端 Linux 机器的路由来确认这一点,route并且要推送的路由没有显示出来。

相关内容