2 回答

TA貢獻1784條經驗 獲得超8個贊
由于遠程客戶端位于“云中”(即在 Internet 上其他位置的另一臺計算機上運行),因此它將需要使用 ISP 分配給您的公共 IP。在服務器端,您可以使用https://api.ipify.org等網站來發現您的公共 IP,然后將其提供給客戶端進行連接?;蛘?,您可以向任何公共域注冊商(GoDaddy 等)注冊靜態主機名,并將其指向您的公共 IP(如果您的 IP 是動態的,則可以使用動態 DNS 服務來處理該情況)。
如果您的服務器計算機直接連接到互聯網調制解調器,那么您的公共主機名/IP 將直接路由到您的服務器計算機。
-------
----------> | DNS | ----------
| ------- |
| \|/
---------- ------------ --------------
| client | <-> | Internet | <-> |x:x| server |
---------- ------------ --------------
但是,如果您的服務器沒有直接連接到調制解調器,而是在 NAT 路由器后面運行,那么您的公共主機名/IP 將路由到路由器,而不是您的服務器計算機:
-------
----------> | DNS | ----------
| ------- |
| \|/
---------- ------------ -------------- --------------
| client | <-> | Internet | <-> |x:x| router | <-> |x:x| server |
---------- ------------ -------------- --------------
因此,路由器必須單獨配置端口轉發規則,以將入站流量從其公共 WAN IP/端口路由到服務器計算機的專用 LAN IP/端口。
如果路由器支持 uPNP 并且已啟用,您的服務器可以在綁定/關閉其偵聽套接字時在代碼中動態配置這些規則。否則,您將必須使用路由器的管理界面手動配置規則。
添加回答
舉報