Openvpn
如何僅將特定子網路由到 OpenVPN 伺服器
我只想通過我的遠端 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 文件覆蓋選定的服務。