二叉树树

二叉树树

瞎几吧写

究极喂饭教程,手把手教你内网穿透

啥是内网穿透?#

当我们在家中有个 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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。