我正在运行 Ubuntu 10.4,我尝试禁用 IPv6,因为我目前不需要它。我运行以下命令禁用 IPv6,然后重新启动我的服务器:
echo "#disable ipv6" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
重启后,我可以通过运行以下命令看到 IPv& 已被禁用:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
运行时netstat -antlp
我发现大多数 IPv6 应用程序已关闭但 SSHd 仍在运行:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:9090 0.0.0.0:* LISTEN 663/java
tcp 0 0 0.0.0.0:9091 0.0.0.0:* LISTEN 663/java
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 684/apache2
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 513/sshd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 605/postgres
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 684/apache2
tcp6 0 0 :::22 :::* LISTEN 513/sshd
我如何关闭 IPv6 端口 22 上的 SSH 守护进程?
谢谢。
答案1
根据这
方式使能够SSHD 的 ipv6 是在你的文件中写入一行,/etc/ssh/sshd_config
内容是ListenAddress ::
因此我会做相反的操作,编辑你的/etc/ssh/sshd_config
文件并删除该行。
所以你的文件看起来应该是这样的
ListenAddress 0.0.0.0
ListenAddress ::
现在你只想说
ListenAddress 0.0.0.0
-=编辑=-
禁用 ipv6 的另一种方法显然列在这个帖子:
打开终端并输入以下命令(如果您不使用 Gedit,请将其替换为您的文本编辑器,如 Kate 等)。
sudo gedit /etc/default/grub
并搜索此内容:
GRUB_CMDLINE_LINUX
修改它,使它看起来像这样:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
更新 GRUB:
sudo update-grub2
或者
sudo update-grub
取决于您使用的 Grub 版本。
答案2
我之前浏览过这个页面,然后才在这里找到答案: https://unix.stackexchange.com/a/126793/353061
转帖:默认情况下使用 ipv4 和 ipv6。您可以通过以下指令sshd
配置 sshd 使用的协议AddressFamily
/etc/ssh/sshd_config
对于 ipv4 和 ipv6(默认)
AddressFamily any
仅适用于 IPv4
AddressFamily inet
仅适用于 IPv6
AddressFamily inet6
进行任何更改后,请sshd_config
重新启动sshd
以使更改生效。
此外,您还可以在 sed 中执行此操作:
sed -i 's/^#AddressFamily any/AddressFamily inet/' /etc/ssh/sshd_config
并重新启动 sshd:
systemctl restart sshd
答案3
我怀疑它绑定到 0.0.0.0 和 ::,但是,如果接口上禁用了 IPv6,它将不会接受该接口上的连接。您是否尝试过通过禁用的 IPv6 接口进行连接?