作为Windows操作系统用户,在实践中常遇到需要访问Linux系统应用的情况;
比如远程查看系统日志、浏览器访问界面或执行命令行操作、文件传送等。
如果不在同一局域网,而且Linux系统服务器所在环境没有公网IP或公网IP是动态变化的,如何进行远程外网连接呢?
SSH协议使用的是tcp连接,因此可以使用花生壳进行内网穿透,不需要公网IP,不用设置路由,直接通过内网穿透对SSH服务端口进行映射就能实现Windows远程连接Linux系统设备并执行相关操作;
类似协议如scp、ftp等使用方法同此文,对于tftp等udp协议,需要使用新版花生壳软件phtunnel(详见官网)。
下面来看具体操作流程:
Linux端操作准备
先确定Linux服务器开启ssh,ssh服务程序名为sshd,可以使用which命令确认电脑上是否安装sshd;
如果没有sshd,可使用包管理工具apt-get或者yum进行安装,如:sudo apt-get install openssh-server;
当然也可以写个懒人小脚本:
[ -z $(which sshd) ] && sudo apt-get install openssh-server
检查sshd不存在的时候自动安装ssh服务(小编为ubuntu系统);
安装完成,需要确定sshd端口号,一般是默认22;在终端中查询sshd进程是否存在,并确认端口:
ps -ef | grep sshd | grep -v grep
此命令是从ps的结果中过滤出sshd关键字,并且屏蔽grep进程,ps以及grep命令的组合,即可查到当前sshd进程的启动参数、pid、权限等信息。
如果进程不存在,就需要在本地开启sshd服务,可以使用sudo/etc/init.d/ssh start来启动,高版本linux系统可以使用systemctl命令:sudo systemctl start ssh.service,不同的系统中启动方式可能会有差别,此方法适用于ubuntu以及centos。
进程启动后,需要查看ssh端口号,这里介绍一种简单快捷的命令:netstat;
netstat命令可以查看到当前系统中所有进程的网络连接状态,这里使用-anp参数,
a:显示所有socket;n:不解析域名;p:显示进程信息(需要root权限);
我们依旧用grep从显示结果中过滤sshd,查看结果如下:
类型tcp,监听端口为0.0.0.0:22,表示监听了本地所有网卡的22端口,此时,我们可以确定当前环境中ssh端口为22。
然后在Linux服务器安装花生壳客户端;
安装注册完成,得到花生壳登录帐号SN及密码;
然后到花生壳web管理后台登录激活服务,在“内网穿透”界面设置映射:
应用名称自定义,应用图标任意选择,映射类型选择TCP,内网主机及端口填写Linux服务器局域网IP及端口号22;
因为花生壳已经内置SSH映射模板,也可直接在映射模板中选择SSH服务,系统将自动填入内网主机IP及端口号;
Windows端操作访问
然后在远程外网的Windows系统设备上,安装安全终端模拟软件XShell;
需注意,此处的端口号不再是22,已经通过花生壳将IP转化为固定域名,端口号要采用花生壳生成的域名端口。
花生壳满足没有公网IP环境下,远程访问各种局域网应用或设备;
如企业内网的OA/ERP/CRM系统、NAS私有云、视频监控、FTP/MAC/SVN服务器、个人局域网搭建的网站、博客、进行开发调试、遥感测绘等,均可使用
内网穿透神器无网不透
随时随地远程连接访问
助力远程高效办公
戳图选购 即开即用
精选阅读
教程丨OpenWrt集成花生壳PHTunnel指南
教程丨变废为宝,把旧手机改造成服务器!
教程丨极客DIY:树莓派 Git打造家用服务器!
教程丨没有公网IP,远程访问FTP服务器!
教程丨Get新技能!花生壳 虚拟机远程开发调试