😆Openvpn问题导致我掉了三根头发
详细请看下方图

由于电信服务商不给提供固定ip,我们只能另寻他法,第一个想到的就是frp端口映射,于是跟公司申请了一台阿里云服务器,并在阿里云服务器上安装了frp-server,在Openvpn-server服务器上安装了frp-client。
Openvpn-server是一台双网卡的服务器,一个网卡用来上网(连接阿里云服务器的frp),另一张网卡用来连接机房的路由器,通过Openvpn实现外出出差的同事能同时干两份工作(出差+本地项目)。
端口映射做好,Openvpn安装好之后,经过测试Openvpn的c/s连接无问题,但是ping不通整个环境的其他ip,只能ping通Openvpn-server这台服务器上的网卡,这说明流量并没有被转发出去,而是还在这台机器里打转。
Openvpn-server配置文件如下
local 0.0.0.0
port 1194 # 监听端口
proto tcp # 协议
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh.pem
server 192.168.200.0 255.255.255.0 # Openvpn给客户端分配的网段
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0" # 办公网段路由
push "route 192.168.3.0 255.255.255.0" # 机房路由器路由
push "route 10.0.0.0 255.0.0.0" # 机房路由
client-to-client #允许客户端之间通信
;duplicate-cn
keepalive 10 120
tls-auth /etc/openvpn/server/ta.key 0
cipher AES-256-CBC
compress lz4-v2
push "compress lz4-v2"
;comp-lzo
max-clients 1000
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3
;explicit-exit-notify 1
这个时候测试 Openvpn-server 和其他网段都是通的。
原因:Openvpn的虚拟网卡并没有把流量转发出去,而是局限在这台linux服务器。
解决方法:添加两条 iptables nat 规则,让流量转发到其他网卡,剩下的任务由这个网卡去解决。
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o ens37 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o ens37 -j SNAT --to-source 192.168.3.173
涉及技术:Openvpn 端口映射 路由交换
最后更新于
这有帮助吗?