做網站網頁的工作怎么樣自制網站
一、內網穿透目的
實現公網上,訪問到windows上啟動的web服務
二、內網穿透的環(huán)境準備
公網服務器、windows11的電腦、frp軟件(需要準備兩個軟件,一個是安裝到公網服務器上的,一個是安裝到windows上的)
- frp下載地址
- 下載版本
1.此版本(老版本)供參考,比較新的版本,配置文件是與老版本不一樣的
2.公網服務器上的版本,與windows上的版本是需要對應起來的
三、公網服務器的配置安裝
-
將Linux版本放到 公網服務器
/usr/local/frpInstall
目錄下
frpInstall的文件夾需自己創(chuàng)建的
-
更改文件的讀寫權限、用戶和用戶組
#添加文件的用戶、用戶組為 root(超級管理員)sudo chown -R root:root frp_0.33.0_linux_amd64.tar.gz
#更改文件的讀寫權限為可讀可寫
chmod 777 frp_0.33.0_linux_amd64.tar.gz
-
文件解壓縮
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
-
更改配置文件
進入解壓縮文件,服務端的配置文件為frps.ini
,將其打開,替換為[common] # frp監(jiān)聽的端口,默認是7000,可以改成其他的 bind_port = 7000 # 授權碼,請改成更復雜的 # 這個token之后在客戶端會用到 token = 123456 # frp管理后臺端口,請按自己需求更改 dashboard_port = 7500 # frp管理后臺用戶名和密碼,請改成自己的 dashboard_user = admin dashboard_pwd = admin enable_prometheus = true# 訪問公網的web端口,按自己需求更改 vhost_http_port = 8080
-
安裝服務端并執(zhí)行啟動
#放到指定文件夾,以能夠用systemctl去啟動frp sudo mkdir -p /etc/frp sudo cp frps.ini /etc/frp sudo cp frps /usr/bin sudo cp systemd/frps.service /usr/lib/systemd/system/# 檢測是否能使用systemctl啟動frps sudo systemctl enable frps#啟動frps狀態(tài) sudo systemctl start frps#查看frps狀態(tài) systemctl status frps.service
-
防火墻開放端口
-
檢測服務端frp安裝是否成功
訪問http://公網ip:7500/
,出現下圖時,代表服務端搭建成功
四、windows客戶端的配置安裝
-
解壓客戶端軟件包,并更改配置文件
[common] server_addr = 公網ip server_port = 7000 token = 123456[web_8800] type = http local_ip = 127.0.0.1 local_port = 80 custom_domains = 公網ip remote_port = 8080
-
啟動客戶端
在軟件包所在頁面,文件夾路徑上,輸入cmd
,在彈出的黑窗口中執(zhí)行frpc.exe
五、代理
訪問 公網ip:8080
映射到windows上127.0.0.1:80
六、frp實現多端口穿透
上面步驟實現的是單個端口,那如何實現多端口同時穿透,例實現 公網ip:9001
映射到windows上的127.0.0.1:80
,同時實現 公網ip:9002
映射到windows上的127.0.0.1:8092
1.只需更改客戶端配置文件frpc.ini
,其他如上
[common]
server_addr = 公網ip
server_port = 7000
token = 52010[web_80]
# 類型是tcp,而不是http,
# 原理(參考):frp會直接將其當作tcp數據包處理,只處理到了傳輸層(tcp)
type = tcp
# 本地ip
local_ip = 127.0.0.1
# 本地端口
local_port = 80
# 遠程訪問的端口
remote_port = 9001[web_8080]
type = tcp
local_ip = 127.0.0.1
local_port = 8092
remote_port = 9002
2.注意點
①frps.ini
配置文件中vhost_http_port = 8080
,對應的端口號8080
,在多端口穿透中是沒用的可以去掉,如果沒去掉,多端口映射的客戶端配置文件frpc.ini
中,remote_port
配置的端口號不要與8080
相同。
②此使用tcp的映射方式,不能監(jiān)聽1024以下的端口(服務端非root是不允許監(jiān)聽1024以下的端口),也即remote_port
不能配置1024
以下端口
③此使用tcp的映射方式,對romote_port
有要求,如果將其設置為8999
,此穿透會失敗,設置的只有大于等于 9001
才可以,具體規(guī)則大家自己嘗試獲取。
七、frp實現監(jiān)聽web的80端口
-
服務端
frps.ini
配置[common] server_addr = 公網ip server_port = 7000 token = 123456[web_8800] type = http local_ip = 127.0.0.1 local_port = 80 custom_domains = 公網ip remote_port = 80
-
服務端
frps.service
更改
原因:根據frp的systemd配置默認使用nobody用戶運行,而非root是不允許監(jiān)聽1024以下的端口。所以,把frp的systemd配置里面的“User=nobody”注釋掉,此解決方式針對通過http
方式進行的監(jiān)聽,tcp還是存在此問題 -
客戶端
frpc.ini
配置[common] server_addr = ip公網 server_port = 7000 token = 52010[web_80] type = http local_ip = 127.0.0.1 local_port = 80 custom_domains = ip公網 remote_port = 80