environment:
两台服务器:
本地服务器(local):centos7
具备公网ip 的云服务(cloud)centos7
通过内网穿透给两服务器创建一个网络通道
使用工具openvpn或frps,推荐openvpn,frps不知为何会占用很大的资源
(三)通过内网穿透给两服务器创建一个网络通道(openvpn)
通过`openvpn`创建完成网络通道后,通过`ifconfig`了解到虚拟局域网内:
cloud:10.0.0.1
local:10.0.0.6
cloud作为服务端,local作为客户端
1.生成证书
1.1 用EasyRSA
工具生成证书
# 工具下载
git clone https://github.com/bigcoder84/easy-rsa-old.git
unzip -d ./ easy-rsa-old-2.3.3.zip # 解压
cd easy-rsa-old-2.3.3/easy-rsa/2.0/ # 进入文件夹
1.2 配置vars
文件
对以上参数进行修改(没有实际意义,可以随便写)
· 对第二个KEY_EMAIL要注释掉,否则会覆盖
完成后执行命令
source vars #使刚刚设置的环境变量生效
./clean-all
执行后会在当前目录下生成一个keys
文件夹,并且后面生成的证书都在这个文件夹中
1.3 生成根证书
./build-ca
keys
目录下会多出ca.crt
和ca.key
两个文件
- ca.crt:根证书
- ca.key:根密钥
1.4 生成服务端证书
./build-key-server server
后面按着填便好,且都是y
完成会在keys
下生成两个文件server.crt
和server.key
,即证书和密钥
1.5 生成客户端证书
./build-key client
同上操作,最后在keys
文件夹下生成client.crt
,client.key
,client.csr
三个文件
1.6 生成密钥交换文件
./build-dh
同上,最后在keys
文件夹下生成dh2048.pem
的文件
2. 配置服务端
2.1 安装OpenVPN
yum install -y openvpn
2.2 在/etc/openvpn
下创建keys
目录
mkdir /etc/openvpn/keys
2.3 将证书拷贝至/etc/openvpn/keys
目录下
cp {ca.crt,server.crt,server.key,dh2048.pem} /etc/openvpn/keys/
2.4 创建服务端配置文件
将安装OpenVPN
时自带的server.conf
文件拷贝到/etc/openvpn
下
cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/
2.5 属性修改
修改为tcp连接
修改相关证书和密钥位置
配置转发规则
修改拒绝服务攻击证书
修改加密模式
注释掉server.conf
的最后一行
# explicit-exit-notify 1
启用路由转发功能
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p # 检查是否修改成功
创建拒绝服务证书
cd /etc/openvpn/keys/
openvpn --genkey --secret ta.key
启动OpenVPN
cd /etc/openvpn/
openvpn --daemon --config server.conf
检测是否启动成功
netstat -lntup | grep 1194
之后通过ip addr
可见到,已经生成了一个虚拟网卡,并且分配了网段地址
3.配置客户端(默认已有openvpn)
3.1 下载证书、密钥、配置文件
创建文件夹
mkdir /path/openvpn
将刚生成的client.key
、client.crt
、ca.crt
、/etc/openvpn/keys/ta.key
、/usr/share/doc/openvpn/sample/sample-config-files/client.conf
都黏贴到新建文件夹下(保证是同一文件夹,因为配置文件默认加载同一目录下的其他内容,没在同一文件夹下则报not found
)
3.2 修改客户端配置文件client.conf
同上修改连接方式为tcp
修改加密模式
cipher AES-256-CBC -> cipher AES-256-GCM
根据自己需要修改配置文件路径
3.3 启动连接测试
在/path/openvpn
目录下测试连接命令
openvpn ./client.ovpn
如下则启动成功
3.4 设置后台启动
openvpn --daemon --config /path/openvpn/client.ovpn
也要在openvpn
目录下
完成后使用命令ip addr
则可以见到分配ip10.0.0.6
最后两边互相ping一下,就测试完成了
查看openvpn运行状态
ps -ef | grep 'openvpn'
kill pidId # 停止运行