我只想通过我的远程 openvpn 服务器路由 192.168.255.0/24 的流量。
这个答案建议将以下内容添加到客户端 .ovpn
route-nopull
route 192.168.255.0 255.255.255.0
但是,这不起作用,因为当我连接然后使用以下命令检查我的外部 IP 地址时,我得到的是我的 openVPN 服务器的 IP,而不是我的本地机器的 IP。
dig +short myip.opendns.com @resolver1.opendns.com
就上下文而言,VPN 的目的是允许多个远程客户端从任意位置相互访问,但它们应该对其他所有东西使用默认的本地路由:www PoE 摄像头等。我使用以下方式设置了 openVPN 服务器https://github.com/kylemanna/docker-openvpn
客户端是 Ubuntu 16.04 上的 OpenVPN 2.4.7
我的本地 .ovpn 配置
client
nobind
dev tun
remote-cert-tls server
remote 157.245.203.172 1194 udp
route-nopull
route 192.168.255.0 255.255.255.0
# various certificates / keys
redirect-gateway def1
我的服务器 openvpn.conf
# client specific configurations
client-config-dir ccd
# allow clients to reach other
client-to-client
server 192.168.255.0 255.255.255.0
verb 3
key /etc/openvpn/pki/private/XXX.XXX.XXX.XXX.key
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/XXX.XXX.XXX.XXX.crt
dh /etc/openvpn/pki/dh.pem
tls-auth /etc/openvpn/pki/ta.key
key-direction 0
keepalive 10 60
persist-key
persist-tun
proto udp
# Rely on Docker to do port mapping, internally always 1194
port 1194
dev tun0
status /tmp/openvpn-status.log
user nobody
group nogroup
comp-lzo no
### Route Configurations Below
route 192.168.254.0 255.255.255.0
### Push Configurations Below
push "block-outside-dns"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "comp-lzo no"
答案1
去除那个:
redirect-gateway def1
来自您的客户端配置。
答案2
这很令人沮丧,因为有太多错误信息:
将这些行添加到client.ovpn
# reject route all traffic through vpn
# even if it is configured on the server
pull-filter ignore "redirect-gateway"
# route only selected traffic through vpn
# subnets 10, 20 and 30
route 192.168.10.0 255.255.255.0
route 192.168.20.0 255.255.255.0
route 192.168.30.0 255.255.255.0
其余一切都将通过 net_gateway,而不是通过 VPN。可以选择通过 VPN 接受本地 DNS,或使用自定义客户端 DNS。
我在工作中使用它,通过 VPN 永久访问选定的家庭服务,而不会干扰我的工作(速度、DNS)。
如果您需要工作 DNS,那么一个选项是通过 VPN 拒绝 DNS/DHCP,但通过 hosts 文件覆盖选定的服务。
答案3
最后一条评论几乎适用于 Windows 11 和 OpenVPN……但并不完全适用。以下是解决方法。
pull-filter ignore redirect-gateway
route-nopull
route 10.8.0.0 255.255.255.0