如何仅将特定子网路由到 OpenVPN 服务器

如何仅将特定子网路由到 OpenVPN 服务器

我只想通过我的远程 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

相关内容