公網服務器上部署frp服務端
假設我們的公網服務器的地址anywebsites.f3322.net
京髓,ubuntu 20.04系統(tǒng),各個端口都可用埠褪。
首先準備好frp服務端的配置文件/opt/frps.ini
窒所,內容如下
[common]
bind_addr = 0.0.0.0
bind_port = 7000
dashboard_addr = 0.0.0.0
# 管理端口
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
log_file = ./frps.log
log_level = info
log_max_days = 3
disable_log_color = false
# 客戶端連接token
token = 12345678
allow_ports = 2000-3000,3001,3003,4000-50000
max_pool_count = 5
max_ports_per_client = 0
subdomain_host = frps.com
tcp_mux = true
然后鲸拥,運行下面的命令,使用docker部署frps的服務端:
docker run -d --name=frps \
--restart=always \
-v /opt/frps.ini:/etc/frp/frps.ini \
-p 7000:7000 \
-p 7001:7001/udp \
-p 7500:7500 \
snowdreamtech/frps
該容器暴露出來三個端口:7000
端口為frp的服務端口掉分;7500
為frp服務端的控制面板俭缓,而7001/udp
端口是為了接下來部署openvpn
預留的端口。
內網機器部署openvpn
Github上已經有一份說明非常詳細的文檔(點此查看)酥郭,講的非常簡明扼要华坦,接下來我只是簡單翻譯一下而已。
首先不从,找個文件夾惜姐,新建一份docker-compose.yml
的配置文件:
version: '2'
services:
openvpn:
cap_add:
- NET_ADMIN
image: kylemanna/openvpn
container_name: openvpn
ports:
- "1194:1194/udp"
restart: always
network_mode: "host"
volumes:
- ./openvpn-data/conf:/etc/openvpn
配置文件中,network_mode:"host"
讓openvpn的容器共享宿主機的網絡椿息,而不是docker-compose自動創(chuàng)建的openven_default
虛擬網絡载弄。加了這條命令耘拇,外面機器成功登錄了openvpn,即可訪問內部局域網中的其他機器(否則不可以)宇攻,然而惫叛,也要留意內部局域網中的ip分配與docker-compose默認的網段沖突!3阉ⅰ嘉涌!
進入該路徑,依次運行下面的命令(若出現(xiàn)交互內容夸浅,則按照提示輸入即可):
- 配置文件和證書初始化
docker-compose run --rm openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM
docker-compose run --rm openvpn ovpn_initpki
- 修改文件所屬權
sudo chown -R $(whoami): ./openvpn-data
- 啟動openvpn服務
docker-compose up -d openvpn
- 產生客戶端認證文件
export CLIENTNAME="your_client_name"
docker-compose run --rm openvpn easyrsa build-client-full $CLIENTNAME nopass
docker-compose run --rm openvpn ovpn_getclient $CLIENTNAME > $CLIENTNAME.ovpn
一切操作結束仑最,最后得到一個 $CLIENTNAME.ovpn
,拷貝到本地帆喇,但仍然需要修改部分內容警医。需要把文件中remote VPN.SERVERNAME.COM 1194 udp
修改為remote anywebsites.f3322.net 7001 udp
。地址自然是我們的公網網址坯钦,而端口预皇,需要接下來,在frp的客戶端轉發(fā)到7001/udp
婉刀。
內網機器部署frp客戶端
內網客戶端服務器上吟温,準備好配置文件/opt/frpc.ini
,內容如下:
[common]
server_addr = anywebsites.f3322.net
server_port = 7000
token = 12345678
[openvpn]
type = udp
local_ip = 0.0.0.0
local_port = 1194
remote_port = 7001
然后突颊,運行下面的docker命令:
docker run --restart=always -d \
--network host \
-v /opt/frpc.ini:/etc/frp/frpc.ini \
--name frpc \
snowdreamtech/frpc
然后鲁豪,打開我們服務端的網頁控制面板anywebsites.f3322.net:7500
:
展開左側Proxies
欄,點中UDP
律秃,看到部署的openvpn服務已經成功連接:
此時爬橡,將修改后的ovpn配置文件導入本機的openvpn客戶端,即可成功登錄內網棒动!