新ubuntu物理机开启ipv6让外网访问
Ubuntu 物理机 SSH 远程连接与 IPv6 外网访问测试指南
1. 通过 SSH 远程连接 Ubuntu 物理机
1.1 安装 SSH 服务
sudo apt update
sudo apt install openssh-server
1.2 检查 SSH 服务状态
sudo systemctl status ssh
确认出现 active (running)
。
1.3 获取物理机 IP 地址
ip a
或
ifconfig
1.4 另一台电脑连接
- Windows 可用 PuTTY 或 PowerShell。
- Linux/Mac 直接用终端:
ssh 用户名@物理机IP
1.5 常见问题排查
- 检查防火墙(如 ufw):
sudo ufw disable
- 确保两台设备在同一局域网。
- 云服务器需开放 22 端口。
2. 查看物理机是否支持 IPv6
2.1 检查内核支持
cat /proc/net/if_inet6
有内容即支持。
2.2 查看 IPv6 地址
ip -6 addr
或
ifconfig | grep inet6
有 inet6
地址即支持。
2.3 检查是否被禁用
cat /etc/sysctl.conf | grep ipv6
无 disable_ipv6=1
即未禁用。
3. 用 Python 本地服务测试 IPv6 外网访问
3.1 创建测试服务
新建 ipv6_server.py
:
import http.server
import socketserver
import socketPORT = 8000class IPv6TCPServer(socketserver.TCPServer):address_family = socket.AF_INET6Handler = http.server.SimpleHTTPRequestHandlerwith IPv6TCPServer(("::", PORT), Handler) as httpd:print(f"Serving HTTP on [::]:{PORT}")httpd.serve_forever()
3.2 启动服务
python3 ipv6_server.py
3.3 获取公网 IPv6 地址
ip -6 addr
3.4 外网访问格式
http://[2409:8a00:b473:7450:6d4c:944e:d0b2:cda4]:8000/
或
http://[2409:8a00:b473:7450:2e0:21ff:fec4:217d]:8000/
(用你实际的 IPv6 地址,中括号不可省略)
3.5 注意事项
- 防火墙需开放 8000 端口:
sudo ufw allow 8000/tcp
- 需公网 IPv6、路由器和运营商支持。
4. 如何区分 IPv6 地址类型
::1/128
:本地回环,只能本机访问。fe80::...
:链路本地,只能同网段通信。2409:8a00:b473:7450:6d4c:944e:d0b2:cda4
、2409:8a00:b473:7450:2e0:21ff:fec4:217d
:全球唯一(global),可用于外网访问。
建议用 scope global
的地址。