.. _ssh_tunnel_gfw_autoproxy:
====================================
结合SSH Tunnel和AutoProxy插件翻墙
====================================
为了能够安装部署Kubernetes,我们需要部署 :ref:`openconnect_vpn` 翻墙从Google软件仓库下载软件包。日常工作和生活,我们也需要能够在桌面操作系统上翻过GFW,自由地获取信息。不过,部署VPN服务器确实存在一定的技术门槛,也比较繁琐复杂,有没有比较简单易用的个人翻墙利器呢?
答案就是: SSH Tunnel - 你仅仅需要在海外租用一个最小规格的VPS虚拟机,能够ssh登陆这台服务器就可以实现自由访问因特网的目标。
.. note::
翻越GFW,不仅仅是能够自由地获取技术类信息,也是一个自由的灵魂需要获取真实的历史、文化、思想,使得自己能够成为一个有独立思考能力人。
快速起步
==========
SSH Tunnel
-------------
假设你已经在云计算厂商这里租用了一台最小规格Linux虚拟机,并且已经能够ssh登陆新创建的虚拟机。
.. note::
`AWS `_ , `Google Cloud `_ , `Microsoft Azure `_ 甚至提供了一定期限的免费虚拟机,合理使用可以适当节约一些费用。
使用以下命令登陆虚拟机::
ssh -C -D 1080
- 参数 ``-C`` 表示启用压缩,可以加快访问速度
- 参数 ``-D`` 则是关键,表示启用local "dynamic"应用级别的端口转发,本地会分配一个socket监听指定端口1080(实际上你可以指定任何端口,这里1080仅仅是举例)
接下来,你只需要在chrome或firefox浏览器中设置socks代理就可以自由访问因特网,方法如下:
Firefox Socks Proxy
----------------------
打开 FireFox 浏览器,打开 ``Preferences`` 设置选项,点击 "Network Settings" 栏的 ``Setting`` 按钮,设置网络代理,共需设置两个选项:
- "Manual proxy configuration" 设置为 "SOCKS Host" 是 ``127.0.0.1`` Port ``1080`` 。注意,SOCKS类型要选择 ``SOCKS v5``
- 勾选 ``Proxy DNS when using SOCKS v5`` - 这是因为在中国大陆,DNS污染使得你无法正确解析被屏蔽域名对应的IP地址,所以需要把DNS解析也通过SSH Tunnel转发到没有欺诈的DNS服务器进行查询
- 勾选 ``Enable DNS over HTTPS`` - 这是为了使用受信任的DNS服务器而不是本地的DNS服务商(国内电信运营商的DNS是污染的)。当然,如果你操作系统已经设置了采用Google的DNS 8.8.8.8并且已经勾选过 ``Proxy DNS when using SOCKS v5`` ,则这步可以省略。
.. figure:: ../../_static/infra_service/ssh/firefox_socks_proxy.png
:scale: 80
.. figure:: ../../_static/infra_service/ssh/firefox_socks_proxy_dns.png
:scale: 80
SwitchyOmega
--------------
SwitchyOmega是一个浏览器插件,用于自动切换代理。即部分被屏蔽的网站指定Proxy访问,其他则direct访问。这个插件有Chrome版本,也有firefox版本,设置方法相同。
这是一个非常有用的浏览器插件,可以极大提高上网效率,兼顾了跨越防火墙以及避免无谓的代理网速下降。
- 设置 ``proxy`` profile,调整成自己实际的Proxy设置,别忘记最后还要 ``Apply changes``
.. figure:: ../../_static/infra_service/ssh/switchy_omega_import_online_rule_setup_proxy.png
:scale: 65
- 点击 ``auto switch`` 导航:
- 添加在线规则列表,这个规则列表是以前网友搜集的被屏蔽地址列表,虽然是几年前的地址列表,但是可以作为配置的起步基础:
.. figure:: ../../_static/infra_service/ssh/switchy_omega_import_online_rule.png
:scale: 55
地址从 https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt 获取:
.. figure:: ../../_static/infra_service/ssh/switchy_omega_import_online_rule_setup.png
:scale: 55
- 注意:上面截图中 ``Rule list rules`` 对应的动作要修改成 ``proxy`` ,因为我们添加的地址列表都是被屏蔽地址,需要启用代理。另外,案例的2条记录可选删除。
- 以上设置完成后,点击 ``Apply change`` 保存。
- 上述 ``auto switch`` 设置的最终结果截图如下,如果匹配 ``gfwlist.txt`` 则使用proxy规则,其余默认则直接访问:
.. figure:: ../../_static/infra_service/ssh/switchy_omega_import_online_rule_setup_proxy_result.png
:scale: 40
- 如果在使用过程中,发现有页面资源不能加载,则点击 SigmaOmega 图标按钮,补充添加规则。
China-Domain-Whitelist
------------------------
随着GFW对世界的屏蔽越来越严厉,动辄就需要通过点击 SigmaOmega 图标按钮,补充添加翻墙规则让人非常崩溃。这样就出现了一个反向操作方法,即默认执行翻墙策略(所有流量走代理),而只对大陆的网站添加白名单规则(主要的可信信息源在海外)。
`GitHub: pluwen/china-domain-allowlist `_ 就是采用上述方法的具体实现,可参考该项目完成 SigmaOmega 设置。
SSH Tunnel
===========
SSH Tunnel 原理请参考 `SSH TUNNEL `_
.. figure:: ../../_static/infra_service/ssh/ssh_tunnel.png
:scale: 50
参考
========
- `SSH TUNNEL `_
- `SSH/OpenSSH/PortForwarding `_
- `SwitchyOmega GFWList `_