作者: 黄高明
日期: 2019-05-22
类别: vpn系列
标题: OpenVPN同时监听TCP和UDP端口
背景
因为公司是通过动态拨号上网,没有固定的外网地址,所以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
......
相关文章
序号 | 标题 |
---|---|
1 | 通过脚本一键安装ocserv(anyconnect服务端) |
2 | CentOS7使用Ocser搭建CiscoAnyconnect服务器(配置使用) |
3 | 通过脚本一键安装openvpn |
4 | OpenVPN同时监听TCP和UDP端口 |
5 | CentOS 7安装配置PPTP |