为什么 sshd 命令的行为会因网络而异?

为什么 sshd 命令的行为会因网络而异?

我想使用 OpenSSH 登录 Termux。到目前为止,我发现输出内容logcat -s ‘sshd:*’取决于我运行 Termux 的手机所连接的网络。有一次,我得到“Listening on Port 8022”,并且 ssh 工作正常。其他时候,我得到了一些输出,但并不是它正在侦听端口,并且 ssh 不起作用。当我执行 sshd 并且我的手机通过蜂窝数据连接时,logcat命令不会返回任何内容。

那么,为什么 sshd 依赖于您所连接的网络?您是否必须配置网络以允许 sshd 连接或其他什么?

logcat这是我在办公室 WiFi 网络上时的输出:10-09 16:03:41.341 13392 13392 W ssh : type=1400 audit(0.0:10087): avc: granted { execute } for path=“/data/data/com.Termux/files/usr/bin/ssh” dev=“mmcblk0p80” ino=46315 scontext=u:r:untrusted_app_27:s0:c1,c257,c512,c768 tcontext=u:object_r:app_data_file:s0:c1,c257,c512,c768 tclass=file app=com.termux

ifconfig这是该网络上的输出:

Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    unspec 00-...-00 txqueuelen 1000 (UNSPEC)

wlan0:  flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.83.23 netmask 255.255.255.0 broadcast 192.168.83.255
    unspec 00-...-00 txqueuelen 3000 (UNSPEC)

ifconfig这是我的蜂窝数据网络的输出:

Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)

rmnet_data2: flags=65<UP,RUNNING> mtu 1500
        inet 10.45.55.16 netmask 255.255.255.224
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.13.194 netmask 255.255.255.0 broadcast 192.168.13.255
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 3000 (UNSPEC)

答案1

对于要在 tcp/ip 网络上相互通信的两个设备,它们必须位于同一子网中,或者需要在各自的子网之间有路由。防火墙可以位于设备之间的任何点,并且可以有选择地过滤流量。

您的两台设备位于三个独立的网络中:

  • 设备1:(wlan0)192.168.83.0/24
  • 设备2:10.45.55.0/27(wlan0)192.168.13.0/24

所有这些子网都是私有子网(请参阅 RFC 1918),并且这些地址在 Internet 上不可路由。组织通常将这些地址范围用于内部网络。如果您通过这样的地址建立互联网连接,那么您的设备和互联网之间至少有一个 NAT 网关,它将您的地址转换为另一个子网,并可能将您的设备与其他设备的流量聚合到路由器的外部地址。 NAT 网关通常还充当防火墙,阻止与其内部网络上的设备的传入连接。

如果私有地址空间中的网络属于同一组织,则它们可能位于同一 NAT 后面并且可以相互通信,尽管它们之间仍然可能有防火墙,即使它们之间存在路由。

您的蜂窝数据网络不太可能到达 wifi 上的 ssh 端口,但两个 wlan0 网络至少有机会。您必须与您的 WiFi 网络的网络管理员联系,以确定这些子网之间是否存在路由或为何存在路由。

相关内容