无法关闭 IPv6 TCP 端口上的 SSHD

无法关闭 IPv6 TCP 端口上的 SSHD

我正在运行 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 的另一种方法显然列在这个帖子

  1. 打开终端并输入以下命令(如果您不使用 Gedit,请将其替换为您的文本编辑器,如 Kate 等)。

    sudo gedit /etc/default/grub

  2. 并搜索此内容:

    GRUB_CMDLINE_LINUX

    修改它,使它看起来像这样:

    GRUB_CMDLINE_LINUX="ipv6.disable=1"

  3. 更新 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 接口进行连接?

相关内容