使用 FRP 反向代理實現 Windows 遠程連接

互聯網普及率的日漸攀升與 IPv4 資源的持續減少,現在大部分家庭寬帶都不會分配公網 IP ,這使一些網絡應用的實現多了些困難,像個人的 NAS 和一些智能家居設備。對於分配公網 IP ,各地運營商的態度也不同,有的去找客服反應可以要一個公網 IP ,還有些則直接告訴你每年多少錢。這些情況在 IPv6 普及之前都不會改善。

前幾天看到了人民網的一條新聞:阿里雲聯合三大運營商全面提供IPv6服務。雖然現在網上有部分人對中國大力發展 IPv6 的目的持懷疑態度,認爲是出於監管的目的,但我對此還是很支持的。首先我是很愛國的,按現在的話說叫“小粉紅”,這是精神層面的原因。其次是網絡安全問題,這是本屆政府的戰略思想, IPv4 的發展我們沒趕上,資源都在美國佬手中,我們是受制於人的,雖說沒像中興一樣。還有就是互聯網發展的勢頭太猛,中國是互聯網大國,互聯網+的國策一直推進,各種物聯網設備激增,像工業數據採集和智能家居設備,這都需要大量的 IP 地址。

人民網北京6月21日電(記者孟哲)IPv6作爲下一代互聯網的技術基礎,對物聯網、車聯網、人工智能等新興產業的發展有着重大影響。昨日,阿里雲宣佈聯合三大運營商全面對外提供IPv6服務,希望能在2025年前幫助中國互聯網真正實現“IPv6 Only”。

阿里雲聯合三大運營商全面提供IPv6服務

什麼是 FRP

FRP (Fast Reverse Proxy) 是一個可用於內網穿透的高性能的反向代理應用,支持 TCP , UDP , HTTP , HTTPS 協議。下載https://github.com/fatedier/frp/releases

(說到這裏,我的“互聯網傳輸助手”也是一款反向代理應用,用於在互聯網內安裝此應用的設備間傳輸數據。配合“互聯網傳輸助手-服務”程序,未分配公網 IP 的設備也可收發數據。“互聯網傳輸助手-服務”程序我暫時沒有發佈,因爲有時會出現傳輸數據丟失的情況,不知道是網絡的原因還是其他,待我解決了再說。😂)

準備工作

1. 一臺擁有公網 IP 的設備(雲服務器、VPS ……)

這就是一臺反向代理服務器,作爲外網設備訪問內網設備的一座橋樑。

2. 域名(可選)

如果你不想輸入一大串 IP 地址的話,買個好記的域名吧。

安裝 FRP

這裏反向代理服務器使用的是阿里雲的雲服務器,安裝 Windows Server 2016 Datacenter 。內網要遠程連接的設備安裝的是 Windows 10 1803 。如果使用的是 Linux 系統的服務器,只是 FRP 的安裝過程不同,可以百度一下其他 FRP 的文章進行參考。考慮到如果只是用服務器進行反向代理的話,沒有必要購買 Windows 服務器,因爲相比於 Linux ,運行 Windows 的配置要高一些,價格也更貴一些。

下載鏈接在文章的開頭已經給出,根據服務器的系統和處理器類型選擇,這裏選擇 frp_0.20.0_windows_amd64.zip ,下載完成後解壓。

服務器(frps)

  1. 首先要配置一下入方向的安全組規則,需要穿透的端口得放行,我這裏直接開放了一個端口範圍,一勞永逸,各位按需開放即可。
  2. 接下來配置一下設置,解壓後有兩個配置文件,一個是 frps.ini 另一個是 frps_full.ini 。 frps_full.ini 是全配置,裏面所有的配置都有,玩法很多,各位自行研究,這裏只挑幾個有用的。將下面配置代碼複製到 frps.ini 後保存。控制檯可以輸入“服務器IP:端口號”進行訪問,如“1.2.3.4:7500”。
    ```ini
    [common]
    bind_port = 7000 ;要綁定的端口

    dashboard_user = admin ;控制檯的用戶名
    dashboard_pwd = password ;控制檯的密碼
    dashboard_port = 7500 ;控制檯的端口
    ```
  3. 然後把配置文件 frps.ini 與程序 frps.exe 複製到服務器。
  4. 最後使用 cmd 或 power shell 切換到相應目錄運行即可
    ini frps -c frps.ini
    power shell 要使用
    ini .\frps.exe -c frps.ini

內網設備(frpc)

  1. 首先配置一下 frpc.ini
    ```ini
    [common]
    server_addr = 1.2.3.4 ;服務器的 IP
    server_port = 7000 ;服務器上設置的服務綁定端口

    [RDP] ;這個是反向代理的名稱,可以隨意設置
    type = tcp ;RDP 是 TCP 協議的
    local_ip = 127.0.0.1 ;本機 IP
    local_port = 3389 ;遠程桌面的默認端口
    remote_port = 7001 ;外網訪問的端口
    ```
  2. 然後把配置文件 frpc.ini 與程序 frpc.exe 複製到內網設備。
  3. 最後使用 cmd 或 power shell 切換到相應目錄運行即可
    ini frpc -c frpc.ini
    power shell 要使用
    ini .\frpc.exe -c frpc.ini

內網設備開啓遠程桌面

右擊“此電腦”,選擇“系統”——“遠程設置”——“允許遠程連接至此電腦”

運行遠程桌面

在小娜或運行中輸入“mstsc”或“遠程桌面連接”,“計算機”中輸入“服務器 IP:外網訪問端口”,如“1.2.3.4:7001”。不出意外的話,是可以從外網訪問到內網設備的。

綁定域名

  1. 這裏域名的服務商是阿里雲(萬網),在域名控制檯中對相應的域名選擇“解析”。跳轉到雲解析界面後點擊“添加記錄”。我們需要添加一條類型爲 A 的記錄。記錄值爲服務器 IP。
  2. 配置 frpc.ini 。加一行 custom_domains = xxx.yourdomain.xxx 。如
    ini [RDP] ;這個是反向代理的名稱,可以隨意設置 type = tcp ;RDP 是 TCP 協議的 local_ip = 127.0.0.1 ;本機 IP local_port = 3389 ;遠程桌面的默認端口 remote_port = 7001 ;外網訪問的端口 custom_domains = xxx.yourdomain.xxx

這樣就能使用 “你的域名:端口” 進行遠程桌面連接了。

總結

FRP 的玩法很多,如果你的路由器是智能路由器的話,可以將 FRP 部署到你的路由器上,也可以搭建 NAS ,甚至將內網部署的 WEB 應用映射到外網(當然,在國內這是違法的,有條件的話還是要備案一下)等等。 但體驗指數上完完全全取決於你的雲服務器寬帶。 內網穿透,反向代理,都只是彌補沒有公網 IP 的遺憾罷了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章