科学上网 · Scientific Internet

使用ssh访问国外网站

•̀.̫•́✧ · 6月8日 · 2020年本文1054字 · 阅读3分钟45

由于国内的环境,许多外部的服务都无法使用。被认为是轻而易举能够得到的资源,在内地只能是可望而不可即。

另一方面,这促进了中国的规避技术的发展。在这种环境中产生了各种规避软件,并拥有自己的用户和市场。许多人被迫学习相关技术,最后他们可能成为大师。我不得不说感谢这个国家!

GoAgent软件已经过去使用过,但现在谷歌服务经常被阻止,并且该软件的范围减少了。因为我计划应用AdSense帐户,所以我必须去墙壁。现在我觉得使用SSH更好地反转墙壁。

我之前使用了Squid代理,但不幸的是,如果服务器在海外,它将在路线通过时直接丢失。现在,Squid代理只能用于内部网络,将其放在外部网络上基本上是一个死胡同。没有办法,但找到一种更安全的方法来通过代理爬网外网页。

VPN服务器配置是一个解决方案。由于配置很麻烦,我放弃了。最后,它是尝试一个SSH代理。

使用ssh代理,需要你有一台外部的vps,最好是国外的,能够访问各种所需服务。假设你可ssh连接到vps,如下步骤可建成一个代理服务器:

  1. ssh -D127.0.0.1:8080 user@host使用-D参数绑定监听。上述命令中我们监听的端口是8080.如果你知道-N和-T参数的含义,上述命令可以改为: ssh -NT -D *:8080,这里我们监听所有的来源而不限于本机(127.0.0.1)。通过这样做,可以对外提供服务。
  2. 配置浏览器的代理。我使用的是switchysharp这个插件,在配置里找到socks代理,主机填写127.0.0.1,端口填写刚才使用的8080端口,协议版本选择socks v5.0。
  3. 保存配置,并且启用该配置,就可以看到能够顺利访问外部站点资源了。

SSH代理的原理如下:用户的请求立即通过SSH通道启动对外部服务器的请求。由于SSH是一种编码连接,因此内容不能通过外部控制,因此它有效,只要它可以连接到服务器即可。诸如Squid的代理必须首先通过HTTP请求服务器,并且中间路由器一旦看到所请求的地址就会分解它。

此代理的限制: 在使用过程中应当保持ssh会话一直连接。由于请求是通过ssh通道传递,所以要保证ssh会话有效。使ssh处于不断线状态可在服务器上做如下配置:vim /etc/ssh/sshd_config,将下面配置启用:

    ClientAliveInterval 60
    ClientAliveCountMax 3    

然后重启sshd服务: service sshd restart·

下次再次连接进来,即可发现会话会一直保持,就可以愉快的上网了。

0 条回应