FastTunnel是用.net core開發(fā)的一款跨平臺內(nèi)網(wǎng)穿透工具,它可以實(shí)現(xiàn)將內(nèi)網(wǎng)服務(wù)暴露到公網(wǎng)供自己或任何人訪問。與其他穿透工具不同的是:FastTunnel項(xiàng)目致力于打造一個易于擴(kuò)展、易于維護(hù)的內(nèi)網(wǎng)穿透框架,任何人都可以基于該框架二次開發(fā),你可以直接通過nuget安裝依賴進(jìn)行開發(fā),當(dāng)然它也是開箱即用的工具。
相關(guān)優(yōu)秀博文FastTunnel-內(nèi)網(wǎng)穿透原理揭秘測試龍芯 LoongArch .NET之 使用 FastTunnel 做內(nèi)網(wǎng)穿透遠(yuǎn)程計(jì)算機(jī)使用 FastTunnel 做內(nèi)網(wǎng)穿透遠(yuǎn)程計(jì)算機(jī)桌面服務(wù)器
榮獲GVP開源項(xiàng)目FastTunnel榮獲開源中國2020最有價(jià)值開源項(xiàng)目
開源倉庫地址github: https://github.com/SpringHgui/FastTunnelgitee: https://gitee.com/Hgui/FastTunnel官網(wǎng):https://suidao.io
什么是內(nèi)網(wǎng)穿透?一般來說,如果你在內(nèi)網(wǎng)部署一個網(wǎng)站或應(yīng)用,也只有處于內(nèi)網(wǎng)之中的其他網(wǎng)絡(luò)設(shè)備才能訪問;但如果你想讓公網(wǎng)上任何人都可以訪問你內(nèi)網(wǎng)的應(yīng)用,則必須要采取一些手段,內(nèi)網(wǎng)穿透在這種背景下應(yīng)用而生。
FastTunnel能夠做什么?家中建站微信開發(fā)遠(yuǎn)程桌面erp互通svn代碼倉庫端口轉(zhuǎn)發(fā)iot物聯(lián)網(wǎng)聯(lián)機(jī)游戲等等場景,不局限以上搭建屬于自己的內(nèi)網(wǎng)穿透平臺1.在倉庫的 releases 頁面下載對應(yīng)的程序2.根據(jù)自己的需求修改客戶端以及服務(wù)端配置文件appsettings.json3.服務(wù)端運(yùn)行FastTunnel.Server4.客戶端運(yùn)行FastTunnel.Cient (客戶端可運(yùn)行在內(nèi)網(wǎng)任何一臺設(shè)備上)
配置示例用自定義域名訪問內(nèi)網(wǎng)web服務(wù)例如你擁有一臺云服務(wù)器,公網(wǎng)ip地址為 110.110.110.110 ,同時(shí)你有一個域名 suidao.io,你希望訪問 test.suidao.io可以訪問你自己電腦上部署的一個網(wǎng)站。你需要新增一個域名地址的DNS解析,類型為A,名稱為 * , ipv4地址為 110.110.110.110 ,這樣 *.abc.com的域名均會指向110.110.110.110的服務(wù)器,由于FastTunnel默認(rèn)監(jiān)聽的http端口為1270,所以要訪問http://test.abc.com:1270。服務(wù)端配置文件:config/appsettings.json
"ServerSettings": { // 必選 默認(rèn)值 "BindAddr": "0.0.0.0", // 必選 默認(rèn)值 "BindPort": 1271, // 自定義域名web穿透必須 "WebDomain": "suidao.io", // 服務(wù)監(jiān)聽的端口號, 訪問自定義域名站點(diǎn)時(shí)url為 http://{SubDomain}.{Domain}:{ProxyPort_HTTP}/ // web穿透必須 "WebProxyPort": 1270, // 可選,ngixn反向代理后可省略域名后的端口號進(jìn)行訪問 "WebHasNginxProxy": false, // 可選,訪問白名單,不在白名單的ip拒絕 "WebAllowAccessIps": [], // 可選,是否開啟SSH,禁用后不處理SSH類型端口轉(zhuǎn)發(fā).默認(rèn)false。 "SSHEnabled": true }客戶端配置文件:
"ClientSettings": { "Common": { // 服務(wù)端公網(wǎng)ip, 對應(yīng)服務(wù)端配置文件的 BindAddr,支持域名 "ServerAddr": "test.cc", // 服務(wù)端通信端口,對應(yīng)服務(wù)端配置文件的 BindPort "ServerPort": 1271 }, "Webs": [ { // 本地站點(diǎn)所在內(nèi)網(wǎng)的ip "LocalIp": "127.0.0.1", // 站點(diǎn)監(jiān)聽的端口號 "LocalPort": 8080, // 子域名, 訪問本站點(diǎn)時(shí)的url為 http://{SubDomain}.{Domain}:{ProxyPort_HTTP}/ "SubDomain": "test", // test.test.cc } ] }如何去掉域名后的端口號在服務(wù)器端部署nginx,通過nginx反向代理將80端口流量轉(zhuǎn)發(fā)至1270端口,nginx的配置示例如下:
http { # 添加resolver resolver 8.8.8.8; # 設(shè)置 *.abc.com 轉(zhuǎn)發(fā)至1270端口 server { server_name *.abc.com; location / { proxy_pass http://$host:1270; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 可選 error_log /var/log/nginx/error_ft.log error; }}配置端口轉(zhuǎn)發(fā)假設(shè)內(nèi)網(wǎng)有一個mysql服務(wù)端口為3306,在內(nèi)網(wǎng)的ip地址為192.168.1.100,你希望訪問suidao.io:33306端口的請求轉(zhuǎn)發(fā)至內(nèi)網(wǎng)的mysql上,則需要如下配置:1.服務(wù)端配置文件不變2.客戶端配置如下
"ClientSettings": { "Common": { // 服務(wù)端公網(wǎng)ip, 對應(yīng)服務(wù)端配置文件的 BindAddr,支持域名 "ServerAddr": "test.cc", // 服務(wù)端通信端口,對應(yīng)服務(wù)端配置文件的 BindPort "ServerPort": 1271 }, "Webs": [ ], /** * ssh穿透,ssh訪問內(nèi)網(wǎng)主機(jī) * 訪問方式 #ssh -oPort=12701 {root}@{ServerAddr} * ServerAddr 填入服務(wù)端ip,root對應(yīng)內(nèi)網(wǎng)用戶名 */ "SSH": [ { "LocalIp": "192.168.1.100", "LocalPort": 3306, "RemotePort": 33306 } ] }遠(yuǎn)程內(nèi)網(wǎng)電腦windows:只需要將上一步中的3306端口換成3389,linux:只需要將上一步中的3306端口換成22
結(jié)語歡迎點(diǎn)贊+轉(zhuǎn)發(fā)+關(guān)注!大家的支持是我分享最大的動力?。。?/p>
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系站長刪除。
轉(zhuǎn)載請注明出處http://macbookprostickers.com/xintu/20132.html