avatar

如何实现公网访问路由器-内网穿透教程

接上篇教程,现在由于大部分的运营商已经不再分配公网的ipv4地址,大部分的结构其实是这样的

由于局域网的地址是不能在公网直接访问的,那么我们要怎么做才能访问公网呢?

有两种方式,下面我先介绍第一种

  1. 通过VPN 目前比较好用的可以说是zerotier了

    说一下简单的配置过程吧

ZeroTier账号注册

1、百度搜索ZeroTier,找到ZeroTier官网,默认第一个就是,注意鉴别是否为官方的地址。

img

2、进入主页之后,点击 sign up,进入注册页面

img

3、在注册页面默认是英语,英语不好的可以使用翻译网页,按照表格提示填写相对应信息完成注册。

img

4、注册以后,填写的邮箱会收到一封激活的邮件,点击邮箱里面的链接激活账号。

img

5、账号注册成功以后,点击邮箱链接跳转到主页,或者在官方首页的右上角选择 Log in输入相关账号信息进行登录。

img

6、下面是注册成功首次登录的界面,默认已经创建好了一个网络,可以直接使用。

img

7、点击已经创建好的的网络,进入配置界面,我们可以对相关选项进行修改,例如网路名称、局域网IP等,小白建议直接保持默认,最重要的就是这串 NetWork ID ,在后续组网的过程中会用到它。

img

ZeroTier客户端使用

  • 在ZeroTier官网首页的download页面下可以看到支持的平台,点击相关平台进入下载配置页面。
  • ZeroTier组网过程并不难,大概意思就是下载相对应的客户端,然后输入NetWork ID,连接成功以后登录ZeroTier在配置界面授权即可,然后通过分配的局域网ip访问即可,为了照顾小白,我将分平台演示一下。

群晖等NAS端

群晖DSM6.X下载相关套件安装以后要加入网络然后授权即可,DSM7.0以上可以使用第三方套件或者docker,这里我们使用官方推荐的docker方式。

1、登录群辉,打开File Station,在docker目录下新建文件夹并重命名为ZeroTier,然后赋予读写权限。

img

2、打开docker(如果没有的话请在套件中心进行下载)→注册表→搜索zerotier-synology双击选择最新版本(latestr)下载

img

3、下载好以后在映像中找到下载好的镜像,双击启动。 常规设置:容器名称保持默认即可,勾选使用高权限执行容器。

img

4、点击高级设置,在高级设置中勾选启用自动重新启动。

img

5、存储空间中 文件/文件夹选择新建立的zerotier目录,装在路径按照我的填写。

/var/lib/zerotier-one ## 装载路径

img

6、网络勾选使用与Docker Host相同的网络 即可。

img

7、其他保持默认,无需修改,然后点击下一步→完成。

8、登录ZeroTier,复制自己的netowrk id 一定要将下面命令的 网络id修改为自己的。网络id为最后面的那串(159924d630bbc72a)

zerotier-cli join 159924d630bbc72a

9、在容器列表中找到ZeroTier,选中容器点击容器右上角的详情。

img

10、点击终端机→新增边上的小箭头,选择通过命令启动。

img

11、在弹出的对话框中粘贴第8步的命令(切记一定要修改ID)。

img

12、点击确定,然后点击zerotier-cli,如果出现200 join ok的界面运行成功。

img

13、然后回到zerotier 官网,登录以后进入配置界面,在页面最下面对已经出现的设备进行授权,授权的方式为在□中打上√,取消打√即为取消授权。(如果没出现请稍等几秒之后刷新界面)

img

14、nas端配置完毕,其他nas大同小异,如果有相关套件或者软件程序直接安装使用,如果没有按照群晖的docker配置即可。

Windows端

1、ZeroTier为windows提供了相关的软件程序,打开ZeroTier官网,点击download。

img

2、下载好的程序直接安装就行,全程默认下一步,继续之类的操作即可。

img

3、安装好以后打开软件,在windows任务栏右下角会出现ZeroTier图标,右击图标,选择 Join new network,然后粘贴上网络id,点击join。

4、等待几秒之后登录ZeroTier,在后台进行授权即可。

5、window端配置完毕,在这个时候我们在远程已经可以使用分配的内网IP来访问nas了,在浏览器中输入http://192.168.192.245:5000

img

6、win端部署成功。

MAC端

mac端官网有提供相对应的软件,安装成功之后直接粘贴网络id,然后再后台授权即可。

img

Linux端

linux端类似乌班图之类的有应用商店的直接商店搜索ZeroTier安装之后执行加入网络命令步骤3及以后,其他发行版执行1-2步在执行步骤3及以后. 1、root用户登录以后输入下面命令进行安装。

curl -s http s : / /install.zerotier. com | sudo bash

2、安装成功以后如下图所示。

img

3、输入下面命令加入到网络。

zerotier-cli join 159924d630bbc72a

img

4、登录ZeroTier后台进行授权,配置完成。

移动端

苹果和安卓均有相对应的移动端,安装成功以后输入对应的网络id,然后在ZeroTier控制台中授权即可。

安卓端:

img

苹果端:(来自网络)

img

总结

ZeroTier组网相对于之前成功率高了很多,本次搭建教程各终端组网包括官网访问非常顺畅,推荐大家尝试一下,且ZeroTier各终端配置非常简单,总结步骤:注册账号→设备安装相对应平台的软件→加入网络→在ZeroTier后台授权即可。

访问的时候使用分配的内网ip即可,内网ip可以自定义且支持ipv6等设置,有兴趣的可以搜索一下。

img

img

以上教程借鉴与https://baijiahao.baidu.com/s?id=1738840233744208152&wfr=spider&for=pc

  1. 另一种实现方式,通过ipv6

    我们知道现在大多数网络设备都已经支持ipv6了,ipv6的地址一般也是公网的ipv6地址

    如何获取ipv6地址和测试自己是否支持ipv6,可以参照此教程https://ipw.cn/doc/ipv6/user/enable_ipv6.html

    我们如果已经拿到到了ipv6的地址,那么我们怎么才能更好的利用这个ipv6的地址呢

    不知道你有没有听过动态dns,就是将一个固定的域名绑定在ip地址上,然后如果ip地址发生变化,就通过脚本将ip同步更改

    整个流程如下

那么我们就可以通过固定的ip地址来访问我们的路由器了。

路由器里有比较简单的ddns服务,稍微看一下就知道怎么操作了。

我们现在讲另外一个比较难解决的问题,端口转发,比如我们如何远程登录ssh,我们知道ssh默认的端口号是22,这时候我们肯定是无法访问的

这里也有两个做法,一个是通过iptables的命令实现端口转发,另一个是socat这个插件实现端口转发,通过研究发现iptables也不是很好用,反倒是socat十分好用,这里我将端口转发的命令贴出来

1
socat TCP6-LISTEN:12345,reuseaddr,fork TCP4:192.168.6.1:9999 &

这里解释一下这个命令,是将外网的ipv6端口12345 转发到内网的192.168.6.1 9999端口上 & 是保持后台运行,将这行命令粘贴到启动项里,就可以实现开机自启动了。

还有就是socat的安装其实也比较简单,如果在软件包里无法找到的话,就更新一下软件包的源,或者自己手动进行安装,我这里贴一下我使用的一些软件包的源

1
2
3
4
5
6
7
8
# add your custom package feeds here
#
# src/gz example_feed_name http://www.example.com/path/to/files
src/gz openwrt_core http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages
src/gz openwrt_base http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base
src/gz openwrt_luci http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci
src/gz openwrt_packages http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/packages
src/gz openwrt_routing http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/routing

然后实现的效果就如下:

  1. 固定域名访问

  2. ssh连接

image-20220802210957358

文章作者: 无知的小狼
文章链接: https://bytedance.press/2022/08/02/20220801/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE%E8%B7%AF%E7%94%B1%E5%99%A8-%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E6%95%99%E7%A8%8B/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 无知的小狼

评论