本篇博客介紹了在使用 FRP 進(jìn)行內(nèi)網(wǎng)穿透時(shí),如何在一臺(tái)客戶端上配置多臺(tái)服務(wù)器,實(shí)現(xiàn)通過(guò)不同的服務(wù)器訪問(wèn)同一臺(tái)客戶端。
-
本篇博客建立在已經(jīng)使用 FRP 實(shí)現(xiàn)通過(guò)一臺(tái)服務(wù)器范圍一臺(tái)客戶端的基礎(chǔ)上,不會(huì)從頭開(kāi)始對(duì)如何配置 FRP 實(shí)現(xiàn)內(nèi)網(wǎng)穿透進(jìn)行介紹。有需要這方面的同學(xué)可以參考下面這篇文章:【計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)】?jī)?nèi)網(wǎng)穿透介紹以及使用FRP實(shí)現(xiàn)內(nèi)網(wǎng)穿透Windows遠(yuǎn)程桌面_frp內(nèi)網(wǎng)穿透-CSDN博客
-
本篇博客使用的 FRP 版本為 0.51.0 (下載鏈接);使用 winsw 軟件進(jìn)行 windows 服務(wù)注冊(cè) (下載鏈接)。
一、服務(wù)器端配置
在服務(wù)器端,我們不需要進(jìn)行額外的配置,因?yàn)槎际沁B接到同一臺(tái)客戶端。因此,我們只需要將在之前服務(wù)器上配置好的配置文件直接復(fù)制粘貼到需要新添加的服務(wù)器上,然后運(yùn)行 frps 即可。
二、客戶端配置
客戶端的配置是主要的工作。我們已經(jīng)配置好的客戶端文件如下:
因?yàn)槭桥渲每蛻舳说膬?nèi)容,所以只需要對(duì) frpc.ini 進(jìn)行配置。
-
首先,我們需要對(duì)不同的服務(wù)器創(chuàng)建獨(dú)立的 frpc.ini 文件。例如我們有編號(hào)為1和2的兩臺(tái)服務(wù)器,我們就需要?jiǎng)?chuàng)建 frpc-1.ini, frpc-2.ini 兩個(gè)不同的配置文件。
frpc-1.ini 的配置示例:[common] server_addr = ip1 # 服務(wù)器公網(wǎng)ip,例如1.1.1.1 server_port = 7000 # 用于frp服務(wù)客戶端和服務(wù)端通訊的端口,需要再服務(wù)器防火墻設(shè)置里面放行該端口,例如:7000,需要與服務(wù)端bind_port保持一致。 auto_token = Ba9SI3do718tCwu67V0qk4l5iNG6sAm1DJYzUO8TZxF9y6c52g0K4XLRQfjeW4bn #用于加密的token 可以使用強(qiáng)密碼生成器(http://www.wetools.com/password-generator)生成一個(gè)64位強(qiáng)密碼。例如:Ba9SI3do718tCwu67V0qk4l5iNG6sAm1DJYzUO8TZxF9y6c52g0K4XLRQfjeW4bn,需要與服務(wù)端auto_token保持一致。 [ssh_1] #內(nèi)穿穿透的連接名稱,可以自定義,如ssh。 type = tcp # 鏈接協(xié)議類型,如tcp,http等,具體需要依據(jù)穿透的服務(wù)進(jìn)行設(shè)置。 local_ip = 127.0.0.1 #本地ip,一般是127.0.0.1 local_port = 3389 # 本地連接的端口,如內(nèi)網(wǎng)穿透ssh遠(yuǎn)程連接,就是22端口,Windows遠(yuǎn)程桌面是3389端口,具體的需要根據(jù)服務(wù)類型進(jìn)行設(shè)置。 remote_port = 7001 # 用于frp服務(wù)客戶端和服務(wù)端通訊的端口,需要再服務(wù)器防火墻設(shè)置里面放行該端口,例如:7000,這個(gè)端口不能與服務(wù)端bind_port設(shè)置成同一個(gè),且每一個(gè)內(nèi)網(wǎng)穿透均需要單獨(dú)設(shè)置一個(gè)remote_port。
frpc-2.ini 的配置示例:
[common] server_addr = ip2 # 服務(wù)器公網(wǎng)ip,例如1.1.1.1 server_port = 7000 # 用于frp服務(wù)客戶端和服務(wù)端通訊的端口,需要再服務(wù)器防火墻設(shè)置里面放行該端口,例如:7000,需要與服務(wù)端bind_port保持一致。 auto_token = Ba9SI3do718tCwu67V0qk4l5iNG6sAm1DJYzUO8TZxF9y6c52g0K4XLRQfjeW4bn #用于加密的token 可以使用強(qiáng)密碼生成器(http://www.wetools.com/password-generator)生成一個(gè)64位強(qiáng)密碼。例如:Ba9SI3do718tCwu67V0qk4l5iNG6sAm1DJYzUO8TZxF9y6c52g0K4XLRQfjeW4bn,需要與服務(wù)端auto_token保持一致。 [ssh_2] # 內(nèi)穿穿透的連接名稱,可以自定義,如ssh。 type = tcp # 鏈接協(xié)議類型,如tcp,http等,具體需要依據(jù)穿透的服務(wù)進(jìn)行設(shè)置。 local_ip = 127.0.0.1 #本地ip,一般是127.0.0.1 local_port = 3389 # 本地連接的端口,如內(nèi)網(wǎng)穿透ssh遠(yuǎn)程連接,就是22端口,Windows遠(yuǎn)程桌面是3389端口,具體的需要根據(jù)服務(wù)類型進(jìn)行設(shè)置。 remote_port = 7002 # 用于frp服務(wù)客戶端和服務(wù)端通訊的端口,需要再服務(wù)器防火墻設(shè)置里面放行該端口,例如:7000,這個(gè)端口不能與服務(wù)端bind_port設(shè)置成同一個(gè),且每一個(gè)內(nèi)網(wǎng)穿透均需要單獨(dú)設(shè)置一個(gè)remote_port。
可以看到,兩個(gè)配置文件的主要區(qū)別就是 remote_port 不同。
-
然后,打開(kāi)cmd,進(jìn)入 frp 軟件所在路徑,運(yùn)行以下命令即可分別運(yùn)行兩個(gè)服務(wù)。
frpc.exe -c frpc-1.ini frpc.exe -c frpc-2.ini
-
之后便可通過(guò) windows 遠(yuǎn)程桌面連接,使用 server_addr: remote_port 通過(guò)不同服務(wù)器連接上同一臺(tái)客戶端。
三、使用 winsw 注冊(cè)多個(gè) FRP 服務(wù)為 windows 自啟動(dòng)服務(wù)
winsw 不支持在同一個(gè) winsw.xml 配置文件中配置多個(gè)服務(wù)項(xiàng),且在運(yùn)行時(shí),winsw.exe 只能識(shí)別與自己同名的 xml文件,即 winsw.exe 只認(rèn) winsw.xml,winsw-1.exe 只認(rèn) winsw-1.xml,且無(wú)法指定 xml 文件的路徑。經(jīng)測(cè)試,若配置多個(gè)服務(wù)項(xiàng),它也只會(huì)識(shí)別第一個(gè)服務(wù),因此需要為不同的服務(wù)創(chuàng)建不同的 xml 配置文件。
-
首先,為每個(gè) frp 服務(wù)創(chuàng)建一個(gè) xml 配置文件。
frpc1 服務(wù)的 winsw-1.xml 配置示例:
<service> <id>frp-1</id> <name>frp-1服務(wù)</name> <description>frp-1內(nèi)網(wǎng)穿透服務(wù)</description> <executable>frpc</executable> <arguments>-c frpc-1.ini</arguments> <onfailure action="restart" delay="60 sec"/> <onfailure action="restart" delay="120 sec"/> <logmode>reset</logmode> </service>
frpc2 服務(wù)的 winsw-2.xml 配置示例:
<service> <id>frp-2</id> <name>frp-2服務(wù)</name> <description>frp-2內(nèi)網(wǎng)穿透服務(wù)</description> <executable>frpc</executable> <arguments>-c frpc-2.ini</arguments> <onfailure action="restart" delay="60 sec"/> <onfailure action="restart" delay="120 sec"/> <logmode>reset</logmode> </service>
? 兩個(gè)配置文件的主要區(qū)別在于:
1. 文件名不同;
2. 服務(wù)的 id, name 和 arguments 不同,arguments 中對(duì)應(yīng)于 服務(wù)的 .ini 文件,id 和 name 是唯一標(biāo)識(shí)符,不能相同。
? 然后,我們需要復(fù)制 winsw.exe 文件,并將其分別命名為 winsw-1.exe 和 winsw-2.exe。
-
接下來(lái)進(jìn)行服務(wù)的注冊(cè)和啟動(dòng)。打開(kāi)cmd,進(jìn)入 winsw.exe 所在路徑(與 frp 軟件同目錄下),運(yùn)行以下命令:
# 注冊(cè) frpc1 服務(wù) .\winsw-1.exe install # 運(yùn)行 frpc1 服務(wù) .\winsw-1.exe start # 注冊(cè) frpc2 服務(wù) .\winsw-2.exe install # 運(yùn)行 frpc2 服務(wù) .\winsw-2.exe start
若是要注銷服務(wù),則運(yùn)行:
.\winsw-1.exe stop .\winsw-1.exe uninstall .\winsw-2.exe stop .\winsw-2.exe uninstall
-
到這里,我們已經(jīng)完成了將多個(gè) frp 服務(wù)注冊(cè)為 windows 自啟動(dòng)服務(wù)了。但是,只做到這一步的話,在你的客戶端重啟后,可能會(huì)出現(xiàn)服務(wù)沒(méi)有自動(dòng)啟動(dòng)的情況,因?yàn)樵?windows 剛啟動(dòng)的時(shí)候客戶端還沒(méi)連上網(wǎng),此時(shí)啟動(dòng)服務(wù)會(huì)因?yàn)榭蛻舳诉B接服務(wù)器失敗而導(dǎo)致服務(wù)啟動(dòng)失敗。
因此,我們還需要在 windows 的服務(wù)項(xiàng)中將注冊(cè)好的 frp 服務(wù)啟動(dòng)類型設(shè)置為
自動(dòng)(延遲啟動(dòng))
,等其他的服務(wù)項(xiàng)運(yùn)行完成后再啟動(dòng) frp 服務(wù)。
四、Windows 遠(yuǎn)程桌面連接時(shí)目標(biāo)客戶端斷開(kāi) WIFI連接解決辦法
運(yùn)行 frp 服務(wù)后,在連接目標(biāo)客戶端時(shí)會(huì)有概率出現(xiàn)目標(biāo)客戶端的 WIFI 自動(dòng)斷開(kāi)導(dǎo)致遠(yuǎn)程連接失敗的情況。這個(gè)問(wèn)題需要在目標(biāo)客戶端的 WIFI 屬性配置中解決。
在進(jìn)入要連接的 WIFI 的 高級(jí) WIFI 網(wǎng)絡(luò)屬性
后勾選上即使網(wǎng)絡(luò)未廣播其名稱也連接
和 為此網(wǎng)絡(luò)啟用單一登錄
,指定身份驗(yàn)證模式選擇用戶或計(jì)算機(jī)身份驗(yàn)證
。確定后,重新輸入 WIFI 的用戶名和密碼即可。
更詳細(xì)的步驟可參考:windows遠(yuǎn)程桌面一連接就斷網(wǎng),會(huì)是什么原因?
2024.01.30更新:
最近使用遠(yuǎn)程連接,發(fā)現(xiàn)又發(fā)生目標(biāo)客戶端自動(dòng)斷開(kāi) WIFI 的情況,原來(lái)的方式不好使了,所以又上網(wǎng)找了其他的方式嘗試,下面是能夠奏效的方法:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-789464.html
前面的步驟是一樣的,在高級(jí)指定身份驗(yàn)證模式選擇用戶身份驗(yàn)證
,并點(diǎn)擊保存憑據(jù)
,然后重新輸入 WIFI 的用戶名和密碼即可。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-789464.html
到了這里,關(guān)于FRP 進(jìn)行內(nèi)網(wǎng)穿透,在一臺(tái)客戶端上配置多臺(tái)服務(wù)器連接,winsw 配置多個(gè) windows 自啟動(dòng)服務(wù),Windows 遠(yuǎn)程桌面連接時(shí)目標(biāo)客戶端斷開(kāi) WIFI連接解決辦法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!