共计 1013 个字符,预计需要花费 3 分钟才能阅读完成。
OpenVPN 同时监听 TCP 和 UDP 端口
作者: 黄高明
日期: 2019-05-22
类别: vpn 系列
标题: OpenVPN 同时监听 TCP 和 UDP 端口
[TOC]
背景
因为公司是通过动态拨号上网,没有固定的外网地址,所以 VPN 是通过映射到内网来实现。
由于 udp 在防火墙层被拦截,所以部署完 openvpn 同时开启了 tcp 端口
实现方法
1. 配置文件
把 /etc/openvpn/server.conf 复制一份,比如 /etc/openvpn/tcp.conf,然后修改 tcp.conf:
- 协议修改为 TCP:proto tcp
- IP 地址修改略作修改,比如所有原来是 10.8.0.x 的地方,都改为 10.8.1.x
2. 修改防火墙
然后修改 iptables,增加一条 nat 规则 -A POSTROUTING -s 10.8.1.0/24 -o eth0 -j MASQUERADE。iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 -j MASQUERADE
3. 启动进程
/usr/sbin/openvpn --cd /etc/openvpn/ --config tcp.conf
4. 添加开机启动
/etc/systemd/system/openvpntcp@.service
[Unit]
Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I
After=network.target
[Service]
Type=notify
PrivateTmp=true
ExecStart=/usr/sbin/openvpn --cd /etc/openvpn/ --config tcp.conf
[Install]
WantedBy=multi-user.target
重载服务,添加为开启启动
systemctl daemon-reload
systemctl restart openvpntcp@server
systemctl enable openvpntcp@server
systemctl list-unit-files |grep openvpntcp
客户端 ovpn 配置
生成的客户端配置,只需要修改 udp 为 tcp.
其中如果 remote 有 2 个的话,代表负载均衡,如果其中一个连接不上,会自动连接另外一个
client
proto tcp
remote x.x.x.x 11111
remote x.x.x.x 12222
......
正文完