掌握excel线性回归技巧助力数据分析与决策优化
985
2022-05-30
用 ssh 访问一台主机,如果和主机在一个局域网中或者主机拥有公网 IP,就可以使用 ssh 命令直接连接主机的 IP 地址,但是大部分公司和家庭内部都是局域网,并不能给局域网内的每一台主机都分配一个公网 IP,这时候就需要进行内网穿透,才能从外部连接到局域网内的主机。
什么是内网穿透
简单来说内网穿透就是实现不同局域网内的主机间的通信,通俗点讲,当你在宿舍写代码,想访问机房里的服务,但是机房没有外网IP,所有的web服务都是通过内网发布的(192.168.xx.xx等),那你在宿舍就无法访问到这些服务,可你又不想去机房,那么应该怎么办呢?内网穿透就可以帮你解决这个困境。通过内网穿透,你用宿舍的网络就可以访问到机房的web服务。
或者是你用宿舍的网络,可以SSH访问机房的服务器(服务器没有公网IP)。又或者时你你的闲置手机挂了个Termux,想从其他地方远程访问。
具体步骤
1.在服务器上安装ssh-server
1
2
apt-get install openssh-server
#linux云服务器默认已经安装,这里就跳过
2. 在客户端上连接到服务器,并进行映射
1
2
3
4
ssh -R
# ssh -R 8888:127.0.0.1:8022 chenbao@115.28.***.187
#将本地的local_ip:local_port 映射到 server 的server_port
#ssh将会在服务器上监听server_por 并将消息转发到 local_ip:local_port
这里我用我手机termux手机示范
3.检查连接状态
1
2
3
netstat -l | grep :8888
#netstat -l | grep :server_port
#可以看到服务器端已经监听了8888端口,但是监听的是localhost的8888 ,只能实现服务器本地访问
我映射的是termux上的8022端口(ssh服务)
在服务器上用ssh连接到termux的ssh服务进行测试 , 能成功连接,说明映射成功
4.实现服务器公网访问
1
2
3
#连接到服务器上 略
#建立任意ip(0.0.0.0)到 localhost(127.0.0.1) 的正向代理
ssh -L 0.0.0.0:8889:127.0.0.0.1:8888 chenbao@localhost
1
#再次查看连接情况 0.0.0.0:8889已经监听,这时即可使用服务器公网ip进行访问?(你可能需要在华为云服务器控制台开放需要映射到公网的端口)
1
2
3
4
5
6
7
8
#将默认配置的有效项 复制到 ~/sshd_config 中
grep "^[^#]" /etc/ssh/sshd_config > ~/sshd_config
#修改~/sshd_config 更改端口,添加选项 GatewayPorts yes (允许直接映射到全局(0.0.0.0))
vim ~/sshd_config
添加
Port 8882
GatewayPorts yes
#建议注释Subsystem行
1
2
3
/usr/sbin/sshd -f /etc/ssh/sshd_config
#如果提示权限不够 就 sudo /usr/sbin/sshd -f /etc/ssh/sshd_config
#如果没有找不到error: Could not load host key: /etc/ssh/ssh_host_ed25519_key 就先 ssh-keygen -A
5.其他
带参数 -N(不执行远程命令. 用于转发端口) -f(在执行命令前退至后台)
1.在服务器上新建一个普通用户 onlynat
2.手写一个shell(误)
1
2
3
4
5
6
7
8
9
#include
using std::string;
using std::cin;
int main()
{
string tmp;
while(cin>>tmp);
return 0;
}
编译上述代码,并将这个程序设置为onlynat的she'l'l
编辑~/sshd_config 添加行 AllowUsers onlynat
重启sshd_cinfig 这时 onlynat 就只能使用手写的shell,而无法执行任何命令了
ssh
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。