我想使用 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 网络的网络管理员联系,以确定这些子网之间是否存在路由或为何存在路由。