Openvpn

如何僅將特定子網路由到 OpenVPN 伺服器

  • July 16, 2021

我只想通過我的遠端 openvpn 伺服器路由 192.168.255.0/24 的流量。

這個答案建議將以下內容添加到客戶端 .ovpn

route-nopull 
route 192.168.255.0 255.255.255.0

但是,這不起作用,因為當我連接然後使用下面檢查我的外部 IP 地址時,我得到了我的 openVPN 伺服器的 IP,而不是我的本地電腦。

dig +short myip.opendns.com @resolver1.opendns.com

就上下文而言,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

我的伺服器 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"

去除那個:

redirect-gateway def1

從您的客戶端配置。

這令人沮喪,因為有太多錯誤資訊可用:

將這些行添加到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 文件覆蓋選定的服務。

引用自:https://serverfault.com/questions/988448