ssh反向代理
应用的地方:
反向代理命令
autossh -M 0 -CNR 0.0.0.0:11451:[localhost:11434](https://localhost:11434/) -o ServerAliveInterval=60 -o StrictHostKeyChecking=no 用户名@云服务器ip
-CNR→-fCNR就是后台运行,前提配置好ssh免密登录
或者
autossh -M 0 -v -N -R 2208:localhost:2222 用户名@云服务器ip
要后台运行用nohub
前提云服务器ssh配置文件打开允许反向代理
云服务器端口放开(防火墙、云服务器管理网站)
反向代理命令后输入登录密码后👇
Note
1. 让 autossh
转入后台
在输入密码并成功建立连接后,按下 Ctrl + Z
组合键,这会将当前正在运行的 autossh
进程暂停并挂起。然后,输入 bg
命令,将该进程放到后台继续运行。示例如下:
plaintext
[1]+ Stopped autossh -M 0 -CNR 0.0.0.0:11451:localhost:11434 -o ServerAliveInterval=60 -o StrictHostKeyChecking=no czc@8.139.252.115
czc@wzd444:~$ bg
[1]+ autossh -M 0 -CNR 0.0.0.0:11451:localhost:11434 -o ServerAliveInterval=60 -o StrictHostKeyChecking=no czc@8.139.252.115 &
2. 防止会话关闭时进程终止
为了避免在你关闭当前终端会话时,autossh
进程被终止,可以使用 disown
命令。输入 disown -h %1
(这里的 %1
表示作业编号,你可以根据实际显示的作业编号进行调整),这样即使关闭终端,autossh
进程也会继续在后台运行。示例如下:
bash
czc@wzd444:~$ disown -h %1
3. 验证反向代理是否正常工作
在云服务器上使用 ss
命令查看 11451
端口是否处于监听状态:
bash
ss -tuln | grep 11451
如果有输出显示 11451
端口正在监听,说明反向代理已经成功建立。你可以在本地通过云服务器的公网 IP 和 11451
端口来访问校内服务器上的 Ollama API 了。
4. 配置自动启动(可选)
如果你希望每次服务器重启后,autossh
反向代理都能自动启动,可以创建一个 systemd
服务文件。具体步骤如下:
创建服务文件
bash
sudo nano /etc/systemd/system/autossh-ollama.service
编辑服务文件内容
ini
[Unit]
Description=Autossh tunnel for Ollama
After=network.target
[Service]
User=czc # 替换为你的用户名
ExecStart=/usr/bin/autossh -M 0 -CNR 0.0.0.0:11451:localhost:11434 -o ServerAliveInterval=60 -o StrictHostKeyChecking=no czc@8.139.252.115
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
保存并退出编辑器
在 nano
中,按下 Ctrl + X
,然后按 Y
确认保存,最后按回车键。
重新加载 systemd
配置
bash
sudo systemctl daemon-reload
启动并设置为开机自启
bash
sudo systemctl start autossh-ollama.service
sudo systemctl enable autossh-ollama.service
这样,即使服务器重启,autossh
反向代理也会自动启动,保证你可以持续通过云服务器访问校内的 Ollama API。