情景:一台既链接互联网有链接局域子网的机器,需要通过互联网远程控制这台机器(命令行即可),且不使用teamviewer等远程工具。(设备上运行的是centos7.5系统)
具有公网ip的互联网机器 A
内网机器 B
解决方案1:
步骤1 设置B可以通过ssh免密登录A
(1) 在B中生成秘钥对,如有输入选择,直接回车(命令: ssh-keygen -t rsa);
(2) 根据(1)中的命令提示找到id_rsa.pub文件,并将其内容追加到A中的.ssh文件夹中的authorized_keys中(命令: cat id_rsa.pub >> authorized_keys);
步骤2 设置ssh,实现内网穿透
(1) 配置B中的ssh(命令: ssh -Nf -R A_port:localhost:22 A_user@A_ip)
(2) 现在即可通过在其他机器输入ssh -p A_port A_user@A_ip来远程链接B机器了。
步骤3 B机器实现开机自动链接
(1) 将autossh替换ssh即可;
解决方案2: 使用开源工具frp_0.41.0_linux_amd64
此方案更加简单快捷,而且对云主机资源占用很低;
步骤1 下载工具包
(1)本文提供了64位版本的安装包,可以通过链接下载frp方向代理工具,可做端口映射使用-CentOS文档类资源-优快云下载,如需要其他版本,可以访问GitHub下载,链接为https://github.com/fatedier/frp
步骤2 服务端配置(云主机)
(1)防火墙配置,打开防火墙对配置端口的限制,默认为7000,并选择一个端口作为内网机的映射端口,如6000.
(2)如果想要修改frp服务所用端口,可以通过frps.ini文件进行修改,将bind_port修改为所需端口。
(3)运行服务,命令行输入:./frps -c frps.ini 即可运行服务
步骤3 客户端配置(内网机)
(1)修改frpc.ini文件,将[common]中的server_addr修改为云主机地址,端口修改为配置端口,与步骤2中设置需对应。
(2)修改配置文件中[ssh]中的local_ip(本地的ip)、local_port(本地需要映射出去的短口)、remote_port(映射到服务端端口,步骤2中配置了6000)
(3)运行服务,命令行输入:./frpc -c frpc.ini 即可运行服务