內(nèi)網(wǎng)穿透健盒,不是很好理解。先來看看外網(wǎng)的情況:內(nèi)網(wǎng),局域網(wǎng)圈匆,通過NAT享扔,能夠訪問到互聯(lián)網(wǎng)上的服務瘩蚪。內(nèi)網(wǎng)穿透躲株,和其相反:
內(nèi)網(wǎng)穿透:通過互聯(lián)網(wǎng),反過來涤姊,訪問內(nèi)網(wǎng)的資源暇番,訪問外網(wǎng)的某個域名,能夠代理到內(nèi)網(wǎng)的某個資源思喊。
這里可以使用一個很不錯的工具壁酬,叫做frp
(點此處下載),可實現(xiàn)內(nèi)網(wǎng)穿透恨课,我使用過后舆乔,感覺它的思路是:
外網(wǎng)服務器上有一個tcp/udp服務運行,當我要準備穿透的時候剂公,就本地啟動一個tcp/udp的客戶端希俩,鏈接服務器的服務,兩個之間就建立的通信纲辽,接下來的事情颜武,通信既然已經(jīng)建立了,那么拖吼,解析外網(wǎng)輸入的網(wǎng)址的網(wǎng)站的內(nèi)容盒刚,就是源源不斷的,將外網(wǎng)想要訪問的內(nèi)容在內(nèi)網(wǎng)得到之后绿贞,傳輸給外網(wǎng)展示。
由此思路橘原,可以知道籍铁,實現(xiàn)這個需要:
- 一臺外網(wǎng)linux服務器A,假設ip:119.23.28.222趾断,假設域名:test.com拒名,linux版本的frp。
- 本地是windows芋酌,假設局域網(wǎng)ip:192.168.1.1增显,windows版本的frp,本地127.0.0.1:80運行有web服務脐帝。
在各個版本的frp中同云,都有client糖权、server情景的,如圖:
其中炸站,c結(jié)尾的星澳,是client端配置和應用,s結(jié)尾的旱易,是server端的配置和應用禁偎,但是命令都一樣,需要哪個端就去配置就行了阀坏,上傳linux的frp到linux某目錄下并解壓(假設我在當前目錄操作)如暖,下載windows的frp并且解壓(假設在當前目錄下)下面有個最簡單的示例:
#外網(wǎng)的配置,編輯frps.ini
[common]
# 服務器和客戶端通信的接口
bind_port = 7000
# 向外暴露的端口忌堂,用戶在服務器輸入鏈接的端口
vhost_http_port = 6081
此時運行(先授權) ./frps -c frps.ini
#本地局域網(wǎng)配置盒至,編輯frpc.ini
[common]
# 服務器ip
server_addr = 119.23.28.222
# 服務器和客戶端通信的接口
server_port = 7000
[ssh]
# 通信類型
type = tcp
# 本地局域網(wǎng)ip
local_ip = 192.168.1.1
# 本地ssh的端口
local_port = 22
# server接受ssh的端口
remote_port = 6000
[web]
type = http
# 將server的請求映射到的本地的端口
local_port = 80
# 外網(wǎng)服務器的域名
custom_domains = test.com
此時運行(先授權) ./frpc -c frpc.ini
如果鏈接成功的話,那么浸船,只要訪問
test.com:6081
妄迁,那么,本地的80端口的網(wǎng)站就會展示李命。
當然登淘,這個是在web上的應用,在網(wǎng)絡通信方面【ssh封字、udp黔州、tcp】我相信也可以的,后續(xù)有需求再進行補充阔籽。