大家都知道,我前一阶段咋咋呼呼要做Telegram 机器人,但是这两天打开我的Telegram X则一直显示Connecting。好吧这是毛病,得治,还好我的手机上还放了个自己搭的梯子,结果我一尝试把梯子竖起来,发现梯子坏掉了。
(图源 :pixabay)
Telegram X 代理设置
这下可好了,没法连接,没法登陆,就不用去弄什么劳什子的机器人了,我为我的拖延症找了个相当完美的借口。然而虽然不用写机器人,可是我Telegram上还有美女网友啊,她们找不到我会不会很伤心很着急?万一哪个妹纸因此轻生,我岂不是千古罪人了。
所以无论如何我要爬上去一下,不考虑什么机器人不机器人的事情,只是为了告诉妹纸们我一切安好,请她们放心。可是再去搭梯子?想想就头疼,况且没准弄完就被封呢,有没有什么简单好用的办法呢?看了一下Telegram X的设置界面,里边有一个Proxy (SOCKS5)的选项,就是说我可以直接用代理哦!
SSH 动态端口转发
那么如何方便便捷的实现SOCKS5代理呢?首先我就想到的SSH 端口转发,但是SSH有好多转发类型,什么本地转发远程转发动态转发啥乱七八糟的,我该用哪个呢?查了一下SSH的MAN手册
man ssh
其中-D [bind_address:]port
选项下是这么描述的:
Specifies a local “dynamic” application-level port forwarding. This works by allocating a socket to listen to port on the local side, optionally bound to the specified bind_address. Whenever a connection is made to this port, the connection is forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine. Currently the SOCKS4 and SOCKS5 protocols are supported, and ssh will act as a SOCKS server. Only root can forward privileged ports. Dynamic port forwardings can also be specified in the configuration file.
耶,-D 就是我想要的.
所以我在我的VPS上执行这个指令就可以了
ssh -D IP:1234 user@127.0.0.1
其中是我VPS的IP,user是我的vps上的用户名
执行之后输入密码,成功以用户user登陆到VPS上。
测试连接
咦,我的转发到底实现了没有?连接一下试试吧
添加是成功了,但是能不能正常连接和收发数据呢?妹纸不在线,我就去折磨那个机器人之父吧!
可惜我对它一片真心,它竟然假装不懂!不过我的代理(转发)貌似成功了耶。
更进一步 & 安全
但是弄个转发我还得开个SSH窗口,是不是很别扭?况且我一旦退出SSH,我的代理就关掉了。那么有啥办法让它一直开着呢?
答案是加上-f
和-N
参数
ssh -f -N -D IP:1234 user@127.0.0.1
这样就可以了!
但是等等,有没有发现哪里不对?我们这个代理没有用到用户名密码,岂不是谁都能用?什么,你说你不知道IP,但是你有没有听说过安利有种工具叫代理猎手(扫描)?
所以开放一个不加任何加密措施的代理是非常危险的。能不能给这种使用SSH方式设置的代理添加个密码呢?我找了好久都没有找到答案,国外论坛上有说根本支持设置密码的,不管真假,总之我是没能设置上。
所以,如果你要使用这种方式做代理,一定记得用后关闭。
至于我嘛,上了一下Telegram X,发现根本没有妹纸理我,好伤感的事情😭。以后不上了,也没啥安全不安全的啦!