我可以通过 ssh 访问服务器,但我希望能够使用该服务器从我的计算机浏览网页。我不确定这是否称为通过 SSH 设置 HTTP 代理,但我无法修改,/etc/ssh/sshd_config
因为我不是sudo
。
我非常确定一定有办法,因为我可以 ssh 到服务器并在wget
那里下载文件,然后执行scp
将其复制到我的电脑。我只是想知道是否有更简单的方法,这样我就可以使用本地浏览器,就像它是服务器中的浏览器一样(基本上,我试图下载 pdf 格式的科学文章)。
答案1
如果你的浏览器支持 SOCKS 代理,那么这很简单:
ssh workmachine -D 7099
现在配置您的本地计算机以使用 SOCKS 代理localhost:7099
。(端口号任意数字都可以。)
如果您的浏览器不是支持 SOCKS 代理,那么您应该在远程机器上运行 HTTP 代理(如 tinyproxy)并建立到该机器的隧道:
# Remote machine: tinyproxy listening on 6077
# Your machine:
ssh workmachine -L 7077:localhost:6077
现在配置您的网络浏览器以使用 HTTP 代理localhost:7077
。
如果您已设置自己的隧道配置,~/.ssh/config
包括别名workmachine
以及公钥/私钥对,则此方法通常最容易实现,这样您无需输入密码即可进入。您也可以将隧道配置放入配置文件中(请参阅DynamicForward
和LocalForward
)。