解决方案:如何绕过手机数据限制,创建本地动态应用级端口转发
问题背景
您正在使用移动设备与个人电脑建立SSH连接,以实现局域网或广域网中设备之间的代理服务。您的问题是由于某些原因无法直接在手机上操作SSHD服务。
相关技术及工具
- Termux:一个终端模拟器和Linux环境,在Android应用商店即可获取。
- SimpleSSHD:一个开源的SSH服务器,可在F-Droid等应用市场中下载安装。https://f-droid.org/en/packages/org.galexander.sshd/
- adb(Android调试桥):通过USB线连接设备及操作命令行指令。
方案步骤
方法一:使用Termux直接启SSH服务
- 在您的手机上安装Termux应用。
- 打开Termux,使用
pkg update && pkg upgrade
更新软件包列表和系统库,并在必要时进行升级。运行pkg install openssh
来确保您拥有最新的openssh服务。 - 使用命令
ssh -D [本地监听端口] [服务器IP地址]:[SSH端口号]
来创建一个动态应用级代理,例如:ssh -D 8090 127.0.0.1:22
。这个例子中的8090
是从电脑接入手机的本地监听端口。 - 在您的个人计算机上设置Socks5代理为
127.0.0.1:8090
连接到手机。
方法二:使用SimpleSSHD创建动态应用级端口转发
- 安装Termux并打开它。运行
pkg install openssh
来安装OpenSSH服务。 - 使用命令
apt-get install simple-sshd
下载和安装SimpleSSHD服务,这可能需要一些时间。 - 运行
simple-sshd -D 8090 [服务器IP地址]:[端口号]
创建动态Socks5端口转发。如果您的SSH端口是22,请仅使用简单的 IP 地址和端口号,例如:simple-sshd -D 8090 127.0.0.1:22
。 - 在电脑上设置代理设置为
SOCKS5://127.0.0.1:8090
并尝试使用 curl 或其他工具进行测试。
方法三:使用adb命令并配合SimpleSSHD
- 确保您已经通过USB线将设备与电脑连接,并打开了开发者选项中的“USB调试”。
- 在您的电脑上安装ADB,运行
sudo apt install adb
。确保ADB已正确设置为可以从命令行访问。 - 使用
adb forward tcp:2222 tcp:2222
将计算机的端口2222指向设备上的相同端口,以支持SSH服务。 - 打开Termux, 启动SimpleSSHD 服务,并按照以上步骤三的方法配置SSH连接。
结果验证
完成上述任一方法后,在您的电脑上使用 curl --socks5 127.0.0.1:8090 https://myip.is
命令进行测试,以确保成功的代理转发已建立。这将是您绕过手机数据限制的基本成功标志。
小贴士
- 注意某些情况下您的SIM卡供应商可能不支持使用广域网IP直接连接SSHD。
- 使用一个可靠的VPN来解决此问题。确保设备上的应用没有因其他设置(如防火墙)导致的冲突。
- 若是在使用过程中遇到TCP并行和UDP支持相关的问题,请考虑使用更专业或自定义的服务方案。
案例场景适用范围
该解决方案适用于需要建立动态Socks5代理服务并通过手机网络访问受限资源的情况,尤其针对低带宽需求的应用。例如:网页浏览、简单在线文件传输等任务。
正文完