基于AEAD加密建立稳定TUN/TAP VPN,实现异地内网互联
1 | 注:为了稳定,GOST协议建议使用TCP,每当重大事件时期,UDP会沦陷。 |
一、工具
- GOST (Release)
- OpenVPN
二、架构模式
- 第1部分部署:美国 — 北京 实现AEAD加密互联
- 第2部分部署:HOME到北京 通过OVPN实现内网互联
三、第1部分部署
1. 服务端(US)
- kernel
1 | #IP转发 |
- iptables
1 | #开放TUN1 VPN[注:默认允许转发] |
- 启动
cat cat tun1_vpn.conf
1 | #使用UDP |
2. 客户端(BJ)
cat cat tun1_local.conf
1 | [program:tun1_local] |
3.BJ测试
1 | ping 172.16.100.1 |
四、第2部分部署
1.内核开启转发功能
cat /etc/sysctl.conf
1 | net.ipv4.ip_forward = 1 |
sysctl -p
2.编译安装OpenVPN
1 | 安装依赖 |
3. 创建OpenVPN工作目录
1 | mkdir -p /etc/openvpn |
4. 下载最新EasyRsa3工具
Github 项目: https://github.com/OpenVPN/easy-rsa
1 | 本工具用来制作ca证书、服务端及客户端证书使用 |
1 | cd /etc/openvpn/easy-rsa/easyrsa3/ |
cat vars
1 | set_var EASYRSA_REQ_COUNTRY "BJ-K" |
5. 创建服务端证书及key
1 | cd /etc/openvpn/easy-rsa/easyrsa3 |
1 | 拷贝配置文件 |
6. 配置OpenVPN服务
生成ta.key文件 — 注:客户端连接同样需要该文件
1 | cd /etc/openvpn/ |
配置/etc/openvpn/server.conf
1 | local 0.0.0.0 |
1 | mkdir -p /var/log/openvpn/ |
supervisor启动管理
1 | [program:bj_ovpn] |
7. OVPN客户端-配置文件
1 | client |
故障解决
如果服务器向客户端push了子网路由,仍然无法访问远程服务器内网其他机器的话,需要在OpenVPN服务器添加一条Iptables NAT策略
1 | OpenVPN子网转发 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2021/05/28/基于AEAD加密来建立TUN-VPN/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!