即使是使用 ipv6 也最好做好防范,ip6tables 与 ss

最近看到好多个人,因为开放群晖的端口号,导致宽带被封,运营商给出的原因是:未备案个人宽带不允许提供 web 服务……

这里有一个案例:重要消息:上海电信对于绑定域名用于WEB服务的 直接封宽带

所以现在哪怕我只是开放给自己使用而已,也不行了。其实之前也是不允许的,不过运营商会把 80 端口和 443 端口给封了,这样我们就无法在家里搭建网站了。不过严格来讲还是可以的,只不过得在域名后面加个端口号,例如这样

www.baidu.com:12345

但是现在这种也不允许了,而且一经发现,直接封了你的宽带。除非你自己去电信询问,否则都不知道为什么封的。没错,现在只有电信会封,而且看网友的讨论,好像只有 上海、深圳 这两个地方的电信宽带才会。

那么我是用 移动宽带 的,我需要担心吗?之前我是觉得不需要担心的,毕竟等网上别人出事的时候,我在网上看到别人的帖子,我再来开启防火墙就行了。

然而,我又一想,我怎么知道我不会是,移动用户中第一批遭殃的呢?所以我赶紧又打开我路由器的防火墙。

但我还是想享受外网访问的便捷性,所以我得来想想对策。

之前的

我之前的话,是直接关闭防火墙,这样我就可以通过 ipv6 ,在外面访问宿舍的设备,主要有:

  1. 进入路由器查看一下情况
  2. 访问刷了小钢炮系统的斐讯 N1 盒子,查看系统的负载,管理里面 qbittorrent 的下载
  3. 有时候电脑用虚拟机开着一台 Ubuntu 服务器,需要外网 ssh 连接

所以这上面三台主机里面,我都有运行 ddns 脚本,让它们把自身的 ipv6 地址与我在阿里云申请的域名进行绑定。这样我就可以通过三个不同的域名访问这些主机。但是也麻烦,再添加机器我就得再去添加脚本,并且记住域名,所以我更改了方案。

现在的

我直接开启 padavan 系统的路由器里面的 ss_server ,之后我在外面要访问内网的设备时,就用 ss 连接我的路由器,这时就相当于把它当 VPN 来使用。我想要管理路由器,可以直接在浏览器输入 192.168.123.1 而不用去输入域名,管理其它设备也一样,直接输入局域网 IP 即可。

但是,这一切,还是建立在我把防火墙关闭了的情景下,这样我的宽带还是有被封的风险。我想要开启防火墙,但同时我还可以连接到内网的设备。所以,我了解了一下 ip6tables ,这个是管理 ipv6 的防火墙软件,详情可以看这里 ip6tables详细使用说明

但我用到不多,现在外界访问只通过一个端口,就是 ss_server 开放的那个端口,默认为 8388 ,所以我只需要开放这个端口即可。需要做的,是通过 ssh 连接路由器,或者直接在 高级设置,系统管理,控制台 输入这 3 条命令。

ip6tables -A FORWARD -p tcp --dport 8388 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 8388 -j ACCEPT
ip6tables -A OUTPUT -p tcp --dport 8388 -j ACCEPT

这样外网就只能通过 8388 这个端口来访问内网,而且只能用 ss 连接才行,直接在浏览器输入我 IP 加 8388 肯定不行,因为我根本没有开启 web 服务。所以应该是不会有宽带被封的风险。

但是这样有一个问题,就是当我路由器重启之后,就失效了,只能重新到控制台再输入一次。能否让它开机后自动执行呢?

可以的,需要到【高级设置】——【自定义设置】——【脚本】里添加。由于我使用的是 hiboy 大佬修改的 padavan 系统,所以里面有好几个脚本。如果是其他人的固件估计没这个功能。

那么这里我可以把上面的三条命令,放在【在路由器启动后执行】这个脚本里,也可以放在【在防火墙规则启动后执行】里。我个人是选择后者。

将命令粘贴进去后,点击下方的【应用本页设置】即可。这样以后重启路由器后,就会自动执行这三条命令。