前言
没有公网IP的前提下,公司内网的服务器资源需要能访问和使用,当然直接使用frp
代理出去也行,但是搭配OpenVpn
提供内网访问更加合适,下面是我在公司实操的步骤,记录以供借鉴。
云服务器
前提,需要有一台有公网IP的云服务器,配置不用很高,我这里使用的是腾讯云竞价实例
选择按流量计费比较划算,带宽需要根据实际需求设置,后续可以升级带宽
安装frp
需要先安装Docker和Docker-Compose
frps - 服务端
frp
1 2 3 4
| docker run -d --restart=always \ --network host \ -v /home/ubuntu/Docker/Volumes/frps/frps.ini:/etc/frp/frps.ini \ --name frps snowdreamtech/frps:0.34.3
|
frps.ini
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| [common]
bind_addr = 0.0.0.0 bind_port = 7800
vhost_http_port = 7080 vhost_https_port = 7081
dashboard_addr = 0.0.0.0 dashboard_port = 7082 dashboard_user = admin dashboard_pwd = admin
log_file = logs/stdout.log log_level = info log_max_days = 3
token = mytoken
|
记得配置云服务器安全组,打开对应的端口
frpc - 客户端
1 2 3 4
| docker run -d --restart=always \ --network host \ -v /home/ubuntu/Docker/Volumes/frpc/frpc.ini:/etc/frp/frpc.ini \ --name frpc snowdreamtech/frpc:0.34.3
|
frpc.ini
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| [common] server_addr = 云服务器公网ip server_port = 7000 token = 服务端配置的token tls_enable = true
[ovpn] type = udp local_ip = 192.168.2.11 local_port = 1194 remote_port = 1194
[ovpn-tcp] type = tcp local_ip = 192.168.2.11 local_port = 1194 remote_port = 1194
|
安装oepnvpn
docker-compose.yml
udp
协议,远程桌面会丢包
1 2 3 4 5 6 7 8 9 10 11 12
| version: '2' services: openvpn: cap_add: - NET_ADMIN image: kylemanna/openvpn container_name: openvpn-udp ports: - "1194:1194/udp" restart: always volumes: - ./openvpn-data/conf:/etc/openvpn
|
tcp
协议
1 2 3 4 5 6 7 8 9 10 11 12 13
| version: '2' services: openvpn: cap_add: - NET_ADMIN image: kylemanna/openvpn container_name: openvpn-tcp ports: - "1194:1194/tcp" restart: always volumes: - ./openvpn-data/conf:/etc/openvpn command: 'ovpn_run --proto tcp'
|
TCP/UDP协议都可以,公网
云服务器安全组需要打开对应端口 frp也要配置对应的端口
初始化配置文件和证书
udp
1 2
| docker-compose run --rm openvpn-udp ovpn_genconfig -u udp://公网ip地址 docker-compose run --rm openvpn-udp ovpn_initpki
|
tcp
1 2
| docker-compose run --rm openvpn-tcp ovpn_genconfig -u tcp://公网ip地址 docker-compose run --rm openvpn-tcp ovpn_initpki
|
记住配置的私钥密码
配置文件授权 (可选)
1
| sudo chown -R $(whoami): ./openvpn-data
|
启动 OpenVPN
1
| docker-compose up -d openvpn
|
生成连接密钥
1 2 3 4 5
| export CLIENTNAME="jontywang" # 有密码校验 docker-compose run --rm openvpn easyrsa build-client-full $CLIENTNAME # 无密码校验 docker-compose run --rm openvpn easyrsa build-client-full $CLIENTNAME nopass
|
生成证书文件
1
| docker-compose run --rm openvpn ovpn_getclient $CLIENTNAME > $CLIENTNAME.ovpn
|
这个配置文件就是连接密钥
撤销证书
1 2 3 4
| # 保留配置文件 docker-compose run --rm openvpn ovpn_revokeclient $CLIENTNAME # 移除配置文件 docker-compose run --rm openvpn ovpn_revokeclient $CLIENTNAME remove
|
连接VPN
下载连接工具
安装完成后运行VPN连接工具,运行后右键点击菜单栏图标
选择import
=> 导入配置文件,也就是上述生成的连接密钥, 用户名.ovpn