如何仅将特定子网路由到 OpenVPN Server

eze*_*iel 5 openvpn subnet

我只想通过远程 openvpn 服务器路由 192.168.255.0/24 的流量。

这个答案建议将以下内容添加到客户端 .ovpn

route-nopull 
route 192.168.255.0 255.255.255.0
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为当我连接并使用下面的命令检查我的外部 IP 地址时,我得到的是我的 openVPN 服务器的 IP,而不是我的本地计算机。

dig +short myip.opendns.com @resolver1.opendns.com
Run Code Online (Sandbox Code Playgroud)

就上下文而言,VPN 的目的是允许多个远程客户端从任意位置相互访问,但它们应该使用默认的本地路由来处理其他所有事情:www PoE 摄像头等。我使用https://github设置了 openVPN 服务器.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
Run Code Online (Sandbox Code Playgroud)

我的服务器 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"
Run Code Online (Sandbox Code Playgroud)

SYN*_*SYN 6

去除那个:

redirect-gateway def1
Run Code Online (Sandbox Code Playgroud)

来自您的客户端配置。