環境為win11+wsl2+docker desktop+frp映象
發生背景:wsl配置檔案中我設定了
networkingMode=mirrored
所以一般情況下wsl2和主機ip一致,可互通
原始配置檔案為
#frpc.toml配置檔案埠對映部分
[text]
type = tcp#模式
local_ip =127.0.0.1#本機ip
local_port =1234#本機埠
remote_port =12345#遠端埠
按照設想,本機ip與wsl一致,不會出錯,可是出現錯誤如下:
由於遠端伺服器設定無誤,防火牆也放開了埠所以主要研究本機,更改為0.0.0.0或192.168.x.x後都無效,可在我使用windows版本的frp中,可以正常轉發,所以基本可以確定不是防火牆的問題,在主要確定可以是ip地址問題後,我在一篇文章https://blog.csdn.net/gaohongfeng1/article/details/138509578
中發現
把地址改為這個以後可以正常使用,透過詢問copilot後,得出瞭如下解釋:
127.0.0.1
定義:127.0.0.1 是一個環回地址(loopback address),用於指向本地計算機。
用途:在本地計算機上執行的程式可以透過 127.0.0.1 訪問同一臺計算機上的服務。
限制:只能在本地計算機上使用,不能用於訪問 Docker 容器中的服務。
host.docker.internal
定義:host.docker.internal 是 Docker 提供的一個特殊 DNS 名稱,用於在 Docker 容器中訪問宿主機。
用途:在 Docker 容器中執行的程式可以透過 host.docker.internal 訪問宿主機上的服務。
限制:只能在 Docker 容器中使用,不能在宿主機或其他環境中使用。
在修改埠配置為
#frpc.toml配置檔案埠對映部分
[text]
type = tcp #模式
local_ip =host.docker.internal #DockerDNS
local_port =1234 #本機埠
remote_port =12345 #遠端埠
後,可以正常使用frp
``