二叉树树

二叉树树

瞎几吧写

究極餵飯教程,手把手教你內網穿透

什麼是內網穿透?#

當我們在家中有個 NAS,想要在學校 / 公司的網絡來訪問,就需要用到內網穿透,實現外網訪問內網服務。原理一般是 P2P 打洞和伺服器中轉流量


前期準備#

路由器開啟 UPnP9d3b273d5844fcd41079d7a2e8db3a56

關閉路由器的 IPv4,IPv6 防火牆
eac87ee01ac2d3d08db22a6ea7cc8a3a

使用 Zerotier/Tailscale 進行內網穿透#

他們倆的原理都是嘗試對端建立 P2P 連接,需要對端安裝一個軟體並且長期運行

使用 Zerotier 進行內網穿透的詳細教程#

創建 Zerotier 帳號#

https://zerotier.com

帳號創建都不會的給我去死

創建一個新的 Zerotier 網絡組#

當你帳號登錄成功後,會自動跳轉到這個頁面,點擊Create A Network。如果沒有,請訪問ZeroTier Central

下面的列表會增加一個新的網絡組,點擊它
3154a3b032e8b3cdce514bf906b49c50

Zerotier 默認的網絡組模式為Private。即私密模式,哪怕別人知道了你的Network ID嘗試加入你的網絡組也需要你進行驗證

複製Network ID。後續我們就用這個加入網絡組
79274cf9aab6443cfbf642dfa68d901e


在設備上安裝 Zerotier 應用#

Windows:#

前往Download - ZeroTier,下載 exe 安裝文件

安裝完畢後查看右下角托盤,按照圖片操作加入網絡組
177ed23d4c38c023db3fead1eaf363bc

beb25a738c6912e22c82feef3e371aab

0bfcaf8af8ff555db37c38eda71c7bc6

這裡可以查詢到你的設備 ID 和你在這個網絡組的 IP

362952c2329796dc755e55d7a50e34a7

Linux(飛牛 OS):#

通過 SSH 連接上你的 Linux 設備

查看安裝命令:Download - ZeroTier

終端執行: curl -s https://install.zerotier.com | sudo bash

看到這一行即安裝完畢,後面那一串即你的設備 ID:
37fead44557116de244c5ba83e0ddc7b

加入網絡:sudo zerotier-cli join 你的Network ID
fd3821520158695f7865a88c9251ac6e

Android(安卓)#

下載客戶端

  1. Zerotier One:ZeroTier One APK Download for Android - Latest Version

  2. ZerotierFix:Releases · kaaass/ZerotierFix

如圖操作

bd023de84dc615809d70179b59786bc0

ce7fc24bcc2bc665b7f60004eaef352e


Zerotier 授權設備#

前往 Zerotier 的網頁控制台:ZeroTier Central

授權剛才加入的設備
f8394790363041406c07b27577a20890

勾選然後保存
719c16702c54501ce1747d1e17a43739


Zerotier 訪問測試#

如果你同一個網絡組裡已經有兩台以上的設備了,可以嘗試 ping 一下測試連通性,請先確保兩台設備不在同一個局域網(比如手機開流量,NAS 用家裡的無線網)

IP 可以在這裡查看
87689f1bc02cc87249a5d097ac8db0c2

ping 測試:
eff5fbdb118f37310ee2a9af64b03c6f


使用 Tailscale 進行內網穿透的詳細教程#

創建 Tailscale 帳號#

前往:Tailscale。如果你進不去,請嘗試掛梯子。如果看不懂英文可以開啟瀏覽器的翻譯功能


在設備上安裝 Tailscale 應用#

Windows:#

前往Download · Tailscale,下載 exe 安裝文件

官方教程:
0d4c74f322235f34e52fd51a4c6f816f

Linux(飛牛 OS):#

通過 SSH 連接上你的 Linux 設備

查看安裝命令:Download · Tailscale

終端執行: curl -fsSL https://tailscale.com/install.sh | sh

等待安裝完畢後輸入:tailscale login

打開彈出的瀏覽器窗口,登錄你的帳號即可

Android(安卓)#

下載客戶端(Google Play):Download · Tailscale

登錄你的帳號即可


Tailscale 訪問測試#

前往 Tailscale 的網頁控制台:Machines - Tailscale。可以查看到每個設備 Tailscale 分配的 IP
4bfe1eb12ba6d23e3eec4adb5e13d3b0

ping 測試:
eff5fbdb118f37310ee2a9af64b03c6f


使用 Cloudflare Tunnel 進行內網穿透#

這種方法可以不進行任何配置直接在公網上被訪問,但是僅限 Web 服務。如果你想穿透遊戲伺服器等則不可用。你需要先將域名托管到 Cloudflare

創建 Cloudflare 帳號首頁 | Cloudflare

進入Cloudflare One(需要綁定 PayPal)

如圖操作,創建一個 Tunnel
2d2bbb2ad48b2c3a8f647687b9d541c9

8f385e411d10f7f1d5fb1aeaef7339d3

9876952a7aa5126855d5367af6094c8f

46f00361303a5d239f1c52549dd3d422

Docker 方式#

使用 1Panel

複製如圖的命令

2d2bbb2ad48b2c3a8f647687b9d541c9

將其粘貼,並且複製後面的令牌
f2bc4b3c94867ee553efbfecb6913351

1Panel 應用商店搜索cloudflared
5feb8c30ab1cd2485539e172901cc184

填入令牌
51b7db888e40427fd48d4903605145e8

查看 cloudflared 的 IP#

如果你是 Docker 模式,宿主機 IP 需要通過 SSH 終端輸入ip a來查看。我這裡是192.168.124.34

root@n100-debian:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: ens18: tiROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether bc:24:11:33:e1:7d brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    inet 192.168.124.34/24 brd 192.168.124.255 scope global dynamic ens18
       valid_lft 46579sec preferred_lft 46579sec
    inet6 2409:8a30:320:a170:be24:11ff:fe33:e17d/64 scope global dynamic mngtmpaddr
       valid_lft 1902sec preferred_lft 1898sec
    inet6 fe80::be24:11ff:fe33:e17d/64 scope link
       valid_lft forever preferred_lft foreverti

原生模式(以 Debian 為例)#

選擇 Debian,然後複製底下的命令,直接到終端執行

8bd16ca73825a5c3e993a24fabf99782

如果你的環境無法連接上 Github

嘗試手動下載:https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb

然後將其通過 SSH 等方式傳到 Linux 上,如圖終端為 MobaXterm
b02d31131cc8cdc55310b49142b09c6f

然後使用:dpkg -i cloudflared-linux-amd64.deb安裝這個軟體包

然後直接複製右邊的命令到 SSH 終端執行
60d7f879966e15f71fa872cfa571e59a

Android(Termux)#

在 Android 上安裝Termux | The main termux site and help pages.

在終端執行:pkg install cloudflared

選擇Debian然後複製最右邊的命令到終端執行60d7f879966e15f71fa872cfa571e59a
如果你無法使用 Termux 自帶的 cloudflared,請嘗試安裝 proot 容器實現

依次輸入命令:

pkg update && pkg upgrade
pkg install proot
pkg install proot-distro
proot-distro list
proot-distro install debian
proot-distro login debian
apt install wget
wget https://github.com/cloudflare/cloudflared/releases/download/2024.10.1/cloudflared-linux-arm64.deb
dpkg -i cloudflared-linux-amd64.deb

然後直接複製右邊的命令到 SSH 終端執行

60d7f879966e15f71fa872cfa571e59a


配置並訪問 Tunnel#

通過網頁配置#

這種方法需要直接在安裝了 cloudflared 的設備上通過令牌運行

如圖進入,創建一個 HTTP 隧道

899382207df11cccb4ac875efa48406f

e8e631ad6a8c97bbab11e34735a726e7

96c2faced6f8285c2a2815a975e4171e

填寫你的 IP 和端口,非 Docker 模式可以直接填寫 localhost

本地方式#

這種方法只需要在安裝了 cloudflared 的設備上輸入一些命令然後通過網頁授權,後續更改配置也需要在本地操作

登錄並授權:cloudflared tunnel login

創建隧道並設置隧道(HTTP 模式穿透,目標地址127.0.0.1,端口:8080,外部域名:test.onani.cn):cloudflared tunnel --name test --url http://127.0.0.1:8080 --http2 --hostname test.onani.cn

訪問測試#

成功訪問
1f390df608dfd3cf7b722de26fe44f6e

使用 STUN 打洞#

這種方法可以不進行任何配置直接在公網上被訪問,並且所有類型的服務都能正常使用。但是這種方式進行的內網穿透無法固定也無法指定 IP 和端口,在 3~7 天後會改變

安裝 Lucky#

執行:curl -o /tmp/install.sh http://6.666666.host:6/files/golucky.sh && sh /tmp/install.sh http://6.666666.host:6/files 2.13.4

通過host:16601 進入 Lucky 後台,設置 STUN 穿透。如果 DMZ 主機不設為 Lucky 主機可能會失敗。打碼的地方即公網訪問的 IP 和端口
dc40568b1c0e143f1aef24ef556dc27d

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。