![OpenVPN 不路由互联网流量,只路由本地流量](https://linux22.com/image/760563/OpenVPN%20%E4%B8%8D%E8%B7%AF%E7%94%B1%E4%BA%92%E8%81%94%E7%BD%91%E6%B5%81%E9%87%8F%EF%BC%8C%E5%8F%AA%E8%B7%AF%E7%94%B1%E6%9C%AC%E5%9C%B0%E6%B5%81%E9%87%8F.png)
我有一个带有 SQL 服务器、Web 服务和 OpenVPN 的 VM(https://datawookie.netlify.app/blog/2018/09/diy-vpn-with-docker)。
我只想使用 VPN 连接到 SQL 服务器和 Web 服务。我不想路由互联网流量。我在客户端配置中添加了以下内容:
pull-filter ignore redirect-gateway
route-nopull
route-noexec
但这样就不会有任何结果。我需要做什么才能实现我的目标?
答案1
假设 web 是 192.168.2.10,sql 是 192.168.3.10,推送这些子网
在此步骤中:
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM
你会添加
-p "route 192.168.2.10 255.255.255.255" -p "route 192.168.3.10 255.255.255.255"
完整命令:
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM -p "route 192.168.2.10 255.255.255.255" -p "route 192.168.3.10 255.255.255.255"
你可以为这些值添加任何网络、IP 和掩码,所以如果你想要整个子网 192.168.2.0/24,那么-p "route 192.168.2.0 255.255.255.0"
你也可以使用环境变量,参见https://github.com/kylemanna/docker-openvpn/issues/565