最近经常需要到国外网站查询相关资料,但是有 GFW 的阻碍,不得不采用点非常措施,VPN 之前一直都在用,只是最近不知为何无法使用了,想到自己在 Digitalocean 上还有点 Credit,于是自己搭建 SSH 代理,使用 SSH 加密隧道翻墙。搭建过程很简单,以后再发文。
SSH 命令解析 ssh -qTfnN 参考文末的参数说明 -D 8080 指定端口,用
SSH 代理的基本用法
ssh -qTfnN -D 8080 user@XXX.XXX.XXX.XXX
输入密码之后就是设置浏览器的代理服务器了,在浏览器的代理设置中的 Socket5 代理设置 IP:localhost 端口:8080 (根据 ssh 命令内容设置) 即可放心穿透 GFW,浏览你想要的内容了。
需要管理代理的话,直接 kill 掉 SSH 的进程即可
ps aux | grep ssh
kill XXXX #PID
火狐的话推荐使用 AutoProxy插件。
Chrome 的话推荐使用 Proxy Switchy插件。 或者使用命令行打开 Chrome
#Windows
Chrome.exe --args --proxy-server="socks5://host##"
#MAC OS
open -a /Applications/Google Chrome.app --args --proxy-server="socks5://host##"
附带 SSH 的参数列表的说明 ssh [-1246AaCfghkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec] [-D port] [-e escape_char] [-F configfile] [-i identity_file] [-L port:host] [-l login_name] [-m mac_spec] [-o option] [-p port] [-R port:host] [-S ctl] [user@]hostname [command]
主要参数: -a:利用这个参数,可以使转发的认证代理无效。其结果是使已装入内存的口令无效。如果愿意,你也可以针对每台主机指定这个参数,而不是使其成为全程的设置。 -c cipher:可以通过这个参数为你的网上传输指定一个用来加密数据的密钥对。 -C:该参数将使 ssh 压缩所有通过 Secure Shell 客户端发送的数据,包括输入、输出、错误消息及转发数据。它使用 gzip 算法,压缩级别可通过设置配制文件中的参数 Compressicn Level 来指定。这对于缓慢的传输线路特别有用的。但对于传输速度已经很快的网络则显得没有必要。同样,你可以利用配制文件针对每台主机配置这个参数。 -f:该参数将 ssh 连接送入后台执行。这在验证已经完成且 TCP/IP 转发已经建立的情况下会生效。这对在远程主机上启动 X 程序显得十分重要。其后用户将被提示要求输入口令 (提供的认证代理不运行),然后将连接送往后台。 -g:该参数允许远程主机通过端口转发与主机端口相连,通常情况下仅允许本地主机这样做。 -k:这个参数使 Kerberos 转发功能无效。 -l login_name:这个参数指定你在远程主机上的登录用户名。默认情况下该用户名与你在本地机上的用户名相同。它可以通过配置文件为不同的主机量体裁衣。这个参数是一个很实用的参数,因为许多人在不同的主机上有着不同的用户名。 -L port:host这个参数转发在本地主机上的指定端口与远程主机上的指定端口连接完成的信息。 -n :这个参数与 - f 参数类似。然而,在需要敲入口令时它将不会工作。标准输入由 /dev/null 重定向而得到,当 SecureShell 客户端被送往后台时必须使用它。这个参数在用来发送 X 流量至远程主机时被普遍地使用。最好在使用该参数时启用认证代理。 -o option:在命令行参数未被定义时,该参数用来从配置文件中传递参数。这包括 StrictHostke yChecking 和 Use Rsh,它们没有自己的命令行参数。 -p port:可以指定哪个端口用作 SecureShell 客户端与服务器的连接。默认值为 22,它为 SecureShell 而保留。记住,除非特殊指定,用于服务器的端口号在 /etc/services 文件中定义。可以通过配置文件针对不同的主机而分别设置。 -P:使用大于 1023 的端口号 (非特权的端口)。不能使用这些端口进行 rhost 认证。(无论是它自身还是与 RSA 的组合)。 -q:这个参数选用哑模式。这意味着任何信息,包括警告与诊断信息都不会被显示出来。在你碰到认证或连接问题时,最好关闭该模式。 -R port:host该参数转发远程主机指定端口到本地主机指定端口上的连接。它和 - L 参数的工作过程刚好相反。套接字监听远程主机上的端口,只要针对该端口有一个连接,它将被转发到本地主机和主机端口。该转发端口可以在不同的主机上通过配置文件来进行不同的配置。特权端口只能在以超级账号登录到远程主机时转发。 -t:该参数通过指定一个伪终端迫使 SecureShell 客户端以交互模式工作,即使在给定命令的情况下也是如此。它被用于执行在远地主机上的基于屏幕的程序。 -V:该参数打印出客户端的版本号后退出。 -v :详尽模式。该参数使 ssh 打印出调试信息,在调试连接、认证及配置问题时该参数特别有用。 -x:该参数用于 X 流量转发,X 被公认为在启动时是不安全的,对安全敏感的站点最好设置这个参数。该参数可以通过配置文件为每一台主机分别设置。