我最近在 GCP 上的 docker 容器中安装了一个 openvpn 服务器,来自https://github.com/kylemanna/docker-openvpn。
docker-host 已启用数据包转发。
现在我正在为配置而苦苦挣扎。我可以使用 openvpn 客户端连接到服务器,但我无法通过 VPN 路由所有流量或根本没有流量。
这是我的配置:
server 172.21.208.0 255.255.248.0
verb 3
key /etc/openvpn/pki/private/mycompany.key
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/mycompany.net.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 tun
status /tmp/openvpn-status.log
user nobody
group nogroup
### Route Configurations Below
route 10.250.0.0 255.255.255.0
### Push Configurations Below
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "route 10.250.0.0 255.255.255.0"
我这里有两个问题:
- 我不明白在推送之前我应该在底部的本地路由中放入什么。
- “redirect-gateway def1”已添加到 client.ovpn,但我没有看到任何控制 tat 行为的配置。如果我不从 client.ovpn 中删除它,所有流量都会通过 VPN 路由,但我只需要路由 10.250.0.0/24 并直接通过本地网关访问所有其他地址。
我需要 VPN 连接才能到达与 openvpn 服务器位于同一子网中的计算机,仅此而已。我不需要从 GCP 访问我的本地网络,但我知道我需要一条路由将数据包发送回客户端(因此对该路由指令感到困惑)。
我的本地网络有 C 类专用地址 (192.168.xx) 远程子网有 cidr 10.250.0.0/24 VPN 客户端和服务器获取 B 类地址 (172.21.208.0/21)
答案1
最后,dockerized openvpn 有很多不错的帮助脚本,可以处理大部分配置。我通过仔细阅读这些脚本的文档找到了解决方案。