其他分享
首页 > 其他分享> > ExpRe[20] 云服务器[1] 访问指定端口,端口转发

ExpRe[20] 云服务器[1] 访问指定端口,端口转发

作者:互联网

目录
时效性
本篇撰写时间为2021.12.12,由于计算机技术日新月异,博客中所有内容都有时效和版本限制,具体做法不一定总行得通,链接可能改动失效,各种软件的用法可能有修改。但是其中透露的思想往往是值得学习的。
本篇前置:

在第6期我们对云服务器有了基本的操作和使用能力。这期我们加强云与本地的联系。

访问指定端口并神秘

我们现在需要服务器能神秘(神秘是什么?神秘a又是什么?请参考第10期)
image
第一种方法是采用和第10期类似的方式。安装神秘a,然后通过:2017端口进行配置。

一般80作为网页服务器的访问端口,比如一个网站的ip地址是123.123.123.123,我们访问的是123.123.123.123:80,只是80是默认端口可以省略

也就是说并不是http出现了就是访问80,而是http://,且后面没有:xx,则默认访问80

端口转发

远程转发(-R)

另一种神秘方式:你的本地可以神秘
image
不妨设本地神秘这边入站是8889端口,如图(对于win10,在左下方搜索按钮搜索代理即可找到该设置界面。对于其它系统就各自在相应的地方找)
那么你可以把这个可以神秘的端口做远程转发,即让远程主机能访问你本地的8889端口
即首先
ssh -R 18889:localhost:8889 root@<公网IP>
这样服务器的18889就对应了你本地可以神秘的8889
接下来尝试

export http_proxy='http://127.0.0.1:18889'
curl cip.cc
export http_proxy='http://127.0.0.1:20171'
curl cip.cc

如果你本地使用的神秘节点和上节通过http://<公网IP>:2017配置使用的神秘节点不同,那么两次curl结果是不同的
image
上图第一个结果是export http_proxy='http://127.0.0.1:18889'的,然后改成export http_proxy='http://127.0.0.1:20171'之后就是第二个结果。

本地转发(-L)

另一种转发恰好相反,是让本地可以通过某个端口访问远程主机的端口。可以让本地借用远程主机神秘。
比如远程主机可以上神秘地带(就是刚刚配置到20171的)
我们现在在MobaXtermssh -L localhost:11111:localhost:20171 <神秘服务器账号>@<神秘服务器IP>
验证现象:

动态转发(-D)

找到一台直接可以神秘的机器(比如“可用区:新加坡”),而不是像之前那样神秘软件“共享来共享去”的
image
ssh -D localhost:11111 root@<可以直接神秘的公网IP>
动态转发用的是sock5协议,设置比较复杂。需要左下角搜索Internet选项,然后连接 - 局域网设置 - 高级,如图设置(把其它类型的代理服务器地址去掉,只留下SOCKS5)
image
注:Ubuntu的这个界面就没藏这么深,很难说这不是Windows历史遗留问题。Windows“两种风格设置界面”已经被吐槽很久了……
此时在新的MobaXterm终端中尝试curl -x socks5://127.0.0.1:11111 cip.cc可以神秘,但curl -x socks5://127.0.0.1:11111 -L google.com不行,原因是google.com不能被本地DNS解析。应该改成curl -x socks5h://127.0.0.1:11111 -L google.com
由此看出,(时效性:截至2021.12.12)像github.com之类本地能解析域名的就可以用socks5google.com之类的就要用socks5h

总结和问答练习

  1. Q: 转发实际上更常用的是“跳板”功能,即涉及三台机器的关系(而不是两台)。试举例说明。
    A: 设计一个场景:比如远程服务器可以按172开头的内网IP地址,访问内网的某个机器X(其它机器不行)。
    我们通过远程服务器作为跳板,即可通过本地转发,用本地端口访问的X端口。应用:访问X中的tensorboard等。
    现在,用docker容器模拟一个类似的场景
    (当然想看容器的tensorboard是不推荐如上操作的。根据docker官方文档,不推荐手动改iptables使得curl <内网IP>:<端口>能访问。推荐端口映射。22用于ssh是个特例)

本地新开一个ssh终端,使用ssh -L localhost:2022:<容器IP>:22 root@<宿主IP>
本地再新开一个终端,curl localhost:2022,即可看到Protocol mismatch

标签:神秘,127.0,20,ExpRe,0.1,端口,http,curl
来源: https://www.cnblogs.com/minor-second/p/15681582.html