作者:Chancel Yang, 创建:2024-06-23, 字数:923, 已阅:296, 最后更新:2024-06-23
首先使用 ss
命令来查看所有正在使用的 IPv6 端口,这个命令提供了查看网络连接,路由表等网络相关信息的功能
以下是一个使用 ss
命令来查看所有 IPv6 连接的例子:
ss -tunl6
在这个命令中:
-t
选项表示显示 TCP 连接。-u
选项表示显示 UDP 连接。-n
选项表示以数字形式显示地址和端口信息。-l
选项表示只显示监听的套接字。6
选项表示只显示 IPv6 的连接。如果你只关心 TCP 连接,你可以只使用
-t
选项
然后根据上述正在使用端口,适当的开放一些你需要的服务,可以使用以下命令来设置ip6tables规则:
# 允许本地输入和输出
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT
# 允许已经建立的或者相关联的连接,以及ICMP消息
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
# 允许80/443端口的访问
ip6tables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
# 其他端口访问一律拒绝
ip6tables -A INPUT -j DROP
这些规则将只允许 80/443 端口的访问,其他的端口访问将被拒绝
保存ip6tables规则成一个文件:
ip6tables-save > /etc/iptables/rules.v6
设置在启动时自动添加这些 IPV6 规则:
sudo crontab -e
填入:
@reboot /usr/sbin/ip6tables-restore < /etc/iptables/rules.v6