我有一台 PC 连接到路由器后面的网络,这是很标准的做法。我想知道我的 PC 列出的任何 ipv6 地址是否可以从网络的其余部分访问。到目前为止,我还没有从远程服务器 ping 或 ssh 成功(该ping ipv6.google.com
服务器支持 ipv6,我的 PC 也是如此)。ping 和 ssh 都挂了。
原则上,这些 ipv6 地址中的任何一个都应该从网络的其余部分可见吗?
jeremy@jeremy-Blade:~/sw/tor-browser_en-US/Browser$ ifconfig
....
wlp59s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.52 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 2a10:8006:1f6c:0:ad49:e1a3:327a:714c prefixlen 64 scopeid 0x0<global>
inet6 fe80::3ad4:73bf:e4b1:b2e2 prefixlen 64 scopeid 0x20<link>
inet6 fde5:3ccb:8b2:0:ad49:e1a3:327a:714c prefixlen 64 scopeid 0x0<global>
inet6 fde5:3ccb:8b2:0:b67a:b275:d6b5:63af prefixlen 64 scopeid 0x0<global>
inet6 2a10:8006:1f6c:0:7180:69bd:4b64:a3fd prefixlen 64 scopeid 0x0<global>
ether 9c:b6:d0:13:98:21 txqueuelen 1000 (Ethernet)
RX packets 367229 bytes 331829936 (331.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 256033 bytes 171040955 (171.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
远程机器的 ssh 在以下情况下挂起
root@scrpr:~# ssh -vvvvv jeremy@2a10:8006:1f6c:0:7180:69bd:4b64:a3fd
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "2a10:8006:1f6c:0:7180:69bd:4b64:a3fd" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 2a10:8006:1f6c:0:7180:69bd:4b64:a3fd [2a10:8006:1f6c:0:7180:69bd:4b64:a3fd] port 22.
并且 /var/log/auth.log 没有显示任何活动。
状态显示,自从安装 ubuntu 20.04 以来,我还没有碰过 ufw 规则
jeremy@jeremy-Blade:~/sw/tor-browser_en-US/Browser$ sudo service ufw status
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2021-07-03 19:53:55 EEST; 27min ago
Docs: man:ufw(8)
Process: 535 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
Main PID: 535 (code=exited, status=0/SUCCESS)
Warning: journal has been rotated since unit was started, output may be incomplete.
答案1
是也不是——默认情况下该地址是可访问的,但防火墙可以阻止它访问。
(在我看来,“可见到网络”与“可达”的意思不一样从网络”——它们似乎有点相反,至少在你所问的意义上是如此。)
如果您家中有 IPv6,则您的家用路由器很可能有自己的防火墙,该防火墙仅允许出站连接(和响应),但会阻止网络边缘的任何入站连接。(如果您在工作或学校使用 IPv6,那么整个 LAN 的入站访问更有可能被防火墙过滤。)
从技术上讲,数据包甚至有可能在 ISP 级别被阻止,从而影响全部客户(例如‘鼓励’他们为商业计划或其他东西付费)。
运行tcpdump -n -i wlp59s0 ip6
或wireshark -k -i wlp59s0 -f ip6
– 这将显示所有 IPv6 数据包,甚至那些将被 UFW 或 iptables 阻止的数据包。如果显示传入 ping,则问题出在您的计算机的防火墙上(即 UFW 规则);如果它显示传入的邻居请求,但不是传出的邻居广告,问题要么是您的操作系统,要么是实际地址错误;如果它什么都没有显示,那么它肯定是在更高的地方被阻止了(即在您的路由器或 ISP 上)。
在 Linux 上,您应该使用它ip addr
来检查您拥有的 IP 地址。Linux 的“ifconfig”是一个旧工具,经常会忽略重要信息;应该避免使用它。(此建议不适用于 BSD,因为 ifconfig 是 BSD 的主要工具。)
在“ip addr”输出中,您的某些 IPv6 地址可能被标记为“临时”——这些地址将每隔几个小时过期并被替换。对于入站连接,请使用才不是旁边有“临时”标志——它是永久的,可以在防火墙规则、DNS等中使用。