SSH隧道 SSH
使用 ssh -D 1080 -f -C -q -N user@境内服务器IP
命令创建的 SSH 隧道是持久化的,但它不会在机器重启后自动恢复。以下是关于这个命令的一些详细说明:
命令解释
-
-D 1080
:创建一个 SOCKS 代理,监听本地端口 1080。 -
-f
:后台运行,即在后台创建隧道。 -
-C
:启用压缩,减少数据传输量。 -
-q
:静默模式,减少输出信息。 -
-N
:不执行远程命令,仅创建隧道。 -
user@境内服务器IP
:境内服务器的用户名和 IP 地址。
隧道持久性
- 程序执行期间存在:
当你运行ssh -D 1080 -f -C -q -N user@境内服务器IP
命令时,SSH 隧道会在后台创建并保持运行,直到你手动关闭它或程序结束。 - 机器重启后不存在:
这个 SSH 隧道不会在机器重启后自动恢复。如果你希望在机器重启后自动创建隧道,你需要将其添加到系统的启动脚本中。 -
手动关闭:
你可以通过以下命令手动关闭 SSH 隧道:pkill -f "ssh -D 1080"
自动启动 SSH 隧道
如果你希望在机器重启后自动创建 SSH 隧道,可以将命令添加到系统的启动脚本中。以下是一些常见的方法:
方法一:使用 crontab
-
编辑 crontab 文件:
crontab -e
-
添加启动命令:
在文件末尾添加以下行:
@reboot ssh -D 1080 -f -C -q -N user@境内服务器IP
保存并退出。
方法二:使用 systemd
服务
-
创建服务文件:
创建一个新的服务文件,例如
/etc/systemd/system/ssh-tunnel.service
:sudo nano /etc/systemd/system/ssh-tunnel.service
-
添加服务内容:
在文件中添加以下内容:
[Unit] Description=SSH Tunnel to 境内服务器 After=network.target [Service] ExecStart=/usr/bin/ssh -D 1080 -f -C -q -N user@境内服务器IP Restart=always [Install] WantedBy=multi-user.target
-
启用并启动服务:
sudo systemctl enable ssh-tunnel.service sudo systemctl start ssh-tunnel.service
总结
使用 ssh -D 1080 -f -C -q -N user@境内服务器IP
命令创建的 SSH 隧道在程序执行期间会一直存在,但在机器重启后不会自动恢复。你可以通过 crontab
或 systemd
服务来实现自动启动。