第一章 引言
首先,什麼是內網穿透?
內網穿透是指在外網訪問運行局域網電腦搭建的服務。舉個例子,你在公司搭建一個Tomcat服務,通過localhost:8080訪問,回家後就無法通過局域網ip訪問,這就需要將本地ip映射到一個公網ip(比如阿里雲、騰訊雲之類),就可以實現在家訪問公司裏搭建的服務
第二章 相關工作
1.公網ip哪裏來?
一般部分運營商會給民用公網ip。但據博主所知,大部分地區電信會提供公網ip,目前移動只提供局域網ip。不過即使有了運營商的公網ip,相關外網端口也被運營商封閉,除非你跟他交涉開啓相關外網端口。所以一般都是使用阿里雲等提供的服務器對應的公網ip
2. 準備frp軟件
下載地址:https://github.com/fatedier/frp/releases
本文以0.11版本爲例,服務端是阿里雲的Linux服務器,客戶端是Windows。客戶端相當於公司電腦,能夠訪問內網,而服務端則是做端口轉發使用
FRP的好處:
- 利用處於內網或防火牆後的機器,對外網環境提供 http 或 https 服務
- 對於 http, https 服務支持基於域名的虛擬主機,支持自定義域名綁定,使多個域名可以共用一個80端口
- 利用處於內網或防火牆後的機器,對外網環境提供 tcp 和 udp 服務,例如在家裏通過 ssh 訪問處於公司內網環境內的主機
第三章 方法
1. 服務端(以Linux服務器爲例)
- 解壓上面的下載好的frp軟件包:
tar zxvf frp_0.11.0_linux_amd64.tar.gz
- 然後進入解壓到的文件夾:
cd frp_0.11.0_linux_amd64
- 修改服務端配置文件
vi frps.ini
[common] #綁定端口 bind_port = 9000 #http和https服務的端口號 vhost_http_port = 8001 vhost_https_port = 444 #frp後臺管理 #frp後臺管理的端口、用戶、密碼,自行設置 dashboard_port = 8000 dashboard_user = admin dashboard_pwd = passwd #token值,與客戶端對應,自行設置 privilege_token =bdy123
- 啓動服務端(下列二選一)
1.正常啓動(注意:會話窗口一旦關閉,服務也會中斷,推薦使用第二種方法)
frps -c frps.ini
2.後臺打開
nohup ./frps -c frps.ini &
- 啓動完成可以在web端看到frp後臺界面
瀏覽器輸入 '服務器ip:8000' 訪問
2. 客戶端(以Windows爲例)
- 下載與服務器相同版本的frp,本文以0.11版本爲例,文件目錄如下。
- 修改客戶端配置文件
frpc.ini
[common]
#服務器ip地址
server_addr = 120.79.242.174
#服務端綁定端口,與上面的設置一致
server_port = 9000
#服務端設置的密鑰
privilege_token=bdy123
#tomcat穿透實例
[tomcat]
#通訊協議
type = tcp
#本地ip(局域網ip)
local_ip = 127.0.0.1
#本地訪問的端口
local_port = 8080
#轉發到服務器的端口
remote_port = 8084
#ssh穿透實例
[ssh]
#通訊協議
type = tcp
#本地ip(局域網ip)
local_ip = 127.0.0.1
#本地ssh服務端口
local_port = 22
#轉發到服務器的端口
remote_port = 6000
- 啓動客戶端
在文件夾空白處按住shift點鼠標右鍵,選擇在此處打開powershell窗口
然後鍵入命令.\frpc.exe -c .\frpc.ini
即可打開客戶端
第四章 實際使用及注意事項
- 設置完成後,如果客戶端電腦訪問tomcat是通過
localhost:8080
來實現,那麼在不同網段的計算機上就可以通過服務器地址:8084
來打開客戶端電腦上的tomcat服務器 - 下圖這部分代碼實際上是將本地端口與服務器端做映射,仿照這種寫法可以寫多個代碼塊,具體情況具體分析
- 如果服務端各種界面打不開,請自行查看雲服務器安全組及其各自的防火牆,設置好相應的出站規則,小問題請自行百度解決