利用frp穿透技術,來實現你要的功能,不需要公網IP。畢竟現在公網IP運營商有很多限制:
以下文章轉載自吳昊博客
frp內網穿透是通過一個帶有公網IP的服務器進行中轉,對被控主機實現反向代理,用戶通過訪問frps(中轉服務器)來實現對frpc(被控主機)的遠程訪問。
frp流程圖如下:
frp項目地址:https://github.com/fatedier/frp
本實驗環境以阿里云服務器作為中轉機,中轉服務器使用Centos7.6,被控主機使用Centos7.6,用戶使用Windows10由于網絡原因,文中鏈接已經替換成了本地鏈接,如不放心,請自行去GitHub下載
frps中轉服務器配置
1、下載frp
在一臺有公網IP的主機上配置frps,我這里以阿里云Centos7.x主機為例
1 wget http://down.whsir.com/downloads/frp_0.27.0_linux_amd64.tar.gz2 tar xf frp_0.27.0_linux_amd64.tar.gz3 mv frp_0.27.0_linux_amd64 /usr/local4 cd /usr/local/frp_0.27.0_linux_amd645 rm -f frpc*
2、配置frps
這里使用最基礎的配置,bind_port 表示frp面板的監控端口,dashboard_user表示面板的登陸帳號,dashboard_pwd表示面板的登陸密碼,其它不動。
1 vi
frps.ini
配置文件說明:
1 [common]
3
4 dashboard_user = whsir
5 dashboard_pwd = blog.whsir.com6 dashboard_port = 80003、啟動frps
配置啟動服務
1 vi /etc/systemd/system/frps.service1 [Unit]2 Description=frps daemon3 After=syslog.target network.target4 Wants=network.target56 [Service]7 Type=simple8 ExecStart=/usr/local/frp_0.27.0_linux_amd64/frps -c /usr/local/frp_0.27.0_linux_amd64/frps.ini910 [Install]11 WantedBy=multi-user.target執行以下兩個命令1 systemctl enable frps2 systemctl start frps
4、訪問監控平臺
http://公網IP:8000
賬號whsir
密碼blog.whsir.com
如果訪問不了,請使用ss -lnt命令檢查端口是否啟動,是否因為防火墻原因攔截。
至此frps中轉服務器配置完成
frpc內網主機配置
1、內網主機下載frp
1 wget http://down.whsir.com/downloads/frp_0.27.0_linux_amd64.tar.gz2 tar xf frp_0.27.0_linux_amd64.tar.gz3 mv frp_0.27.0_linux_amd64 /usr/local4 cd /usr/local/frp_0.27.0_linux_amd645 rm -f frps*
2、配置frpc
其中x.x.x.x表示frps中轉服務器IP地址
ssh字段:local_port = 22示被控(內網)主機的ssh端口,remote_port = 6000表示ssh中轉端口
web字段:local_port = 80表示被控(內網)主機的web端口,remote_port = 8081表示web中轉端口
1 vi frpc.ini1 [common]2 server_addr = x.x.x.x3 server_port = 700045 [ssh]6 type = tcp7 local_ip = 127.0.0.18 local_port = 229 remote_port = 60001011 [web]12 type = tcp13 local_ip = 127.0.0.114 local_port = 8015 remote_port = 80813、啟動frpc
配置啟動服務
1 vi /etc/systemd/system/frpc.service1 [Unit]2 Description=frpc daemon3 After=syslog.target network.target4 Wants=network.target56 [Service]7 Type=simple8 ExecStart=/usr/local/frp_0.27.0_linux_amd64/frpc -c /usr/local/frp_0.27.0_linux_amd64/frpc.ini910 [Install]11 WantedBy=multi-user.target執行如下命令1 systemctl enable frpc2 systemctl start frpc
至此frpc被控主機配置完成
此時可通過x.x.x.x:6000連接內網ssh,通過http://x.x.x.x:8081訪問內網主機web,訪問速度取決于帶寬
這時候,內網主機就映射到外網去了,然后,用域名指定你的frp主機ip就可以了。這樣就可以實現你的功能了。