首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >外网ssh连接内网服务器:不同网段跨网远程操作Linux主机,本地无公网ip让外网访问方法

外网ssh连接内网服务器:不同网段跨网远程操作Linux主机,本地无公网ip让外网访问方法

原创
作者头像
网络前线
发布2025-09-09 11:45:25
发布2025-09-09 11:45:25
6380
举报

在系统管理领域,远程管理是一项至关重要的任务。SSH(Secure Shell)它提供了一种安全的方式,使您能够在不同的计算机之间进行远程连接和管理。通过使用SSH命令,您可以在远程计算机上执行命令、传输文件以及进行安全的远程登录。通常情况下Linux系统自带有SSH服务,并提供Linux和windows远程访问管理。

在不同局域网内,想用SSH远程连接没有公网ip的Linux计算机电脑,问如何连接?如回家后不方便登录校园网,但是仍有同学需要访问实验室服务器进行实验等其他任务。通过本地SSH服务开启、防火墙开放设置、以及nat123搭建内网映射外网隧道,使外网可以直接SSH连接学校内网中的Linux服务器。

在SSH(Secure Shell)中,跨网段访问通常指的是从一个网络(比如一个局域网)访问另一个网络(另一个局域网或互联网)上的远程服务器。要实现跨网段访问,你需要确保你的本地网络有联网,‌SSH服务运行‌并且没有被防火墙阻塞,‌同时面对无公网IP情况使用类似nat123端口映射方式将内网SSH地址转换成公网地址形式来访问。下面是配置步骤详细教程。

一、配置SSH服务

1、SSH服务端安装:

SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。

dpkg -l | grep ssh

如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。

安装ssh客户端:sudo apt-get install openssh-client

安装ssh服务端:sudo apt-get install openssh-server

2、启动服务器的SSH服务

确认ssh-server是否已经启动了

ps -e | grep ssh

确保目标服务器上的SSH服务正在运行,并且监听在正确的端口上。你可以使用如下命令检查SSH服务的状态:

sudo systemctl status sshd

或者查看SSH配置文件(通常位于/etc/ssh/sshd_config),确保没有禁用SSH服务。

如果没有启动SSH服务的,可以使用如下命令启动:

sudo /etc/init.d/ssh start

停止和重启ssh服务的命令如下:

sudo /etc/init.d/ssh stop #server停止ssh服务

sudo /etc/init.d/ssh restart #server重启ssh服务

二、防火墙开放ssh端口

确保没有防火墙或安全组规则阻止从你的网络到目标网络的流量,特别是针对SSH端口的流量。

在Linux系统中,如果你想要开放22端口(通常是SSH端口,用于远程登录),你可以通过多种方式来实现。以下是几种常见的方法:

1. 使用iptables

iptables是Linux系统中用于配置和管理防火墙的工具。要开放22端口,你可以使用以下命令:

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

sudo iptables -t filter -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT

保存iptables规则(根据你的发行版,可能需要不同的命令):

对于Debian/Ubuntu系统:

sudo apt-get install iptables-persistent

sudo netfilter-persistent save

sudo netfilter-persistent reload

对于CentOS/RHEL系统:

service iptables save

service iptables restart

2. 使用ufw(Uncomplicated Firewall)

ufw是一个更简单的防火墙管理工具,适用于许多Linux发行版。要开放22端口,可以使用以下命令:

sudo ufw allow 22/tcp

启用ufw(如果尚未启用):

sudo ufw enable

3. 使用firewalld(适用于Fedora, CentOS 7及以上版本)

firewalld是Fedora和CentOS 7及以上版本中默认使用的防火墙管理工具。要开放22端口,可以使用以下命令:

sudo firewall-cmd --zone=public --add-port=22/tcp --permanent

sudo firewall-cmd --reload

4. 直接编辑防火墙配置文件(需要熟悉这些文件)

某些Linux发行版允许你直接编辑防火墙的配置文件来开放端口。例如,对于iptables,你可以编辑/etc/sysconfig/iptables或/etc/iptables/iptables.rules文件。对于firewalld,可以编辑/etc/firewalld/zones/public.xml文件。但直接编辑这些文件通常不如使用iptables、ufw或firewalld命令行工具来得安全或方便。始终建议在修改之前备份这些文件。

三、内网访问SSH

一旦以上设置完成,你就可以使用SSH客户端从你的计算机连接到同局域网内目标Linux服务器:

ssh 用户名@目标服务器IP -p 端口号

如果你使用的是默认的SSH端口(22),可以省略-p 端口号。

示例命令

ssh user@192.168.1.100

如果你是windows电脑访问端的,通常为了方便远程管理Linux服务器,可以下载安装使用SSH Secure Shell或类似SSH客户端工具,有界面化管理远程访问和文件上传下载更方便。

四、设置nat123端口映射内网ssh开放到公网上

由于本地Linux服务器只有内网IP,不能直接在外地使用不同局域网的内网IP访问ssh,所以需要借助类似nat123映射这样的三方内外网地址转换工具。

1、下载安装

如果自己有目标Linux计算机权限,则可以直接在Linux本地下载安装nat123的Linux版本客户端;如果是其他情况,如可以下载安装nat123客户端到局域网内另台计算机或手机或平板等设备上使用,如同内网下的另台windows主机上安装nat123的windows版本客户端。

2、注册登录

对应官网注册链接进入自定义名称密码邮箱获取自己的nat123帐号,并登录nat123客户端。

注意:如是多个应用场景不同网络环境的,需要分别注册登录使用不同帐号区分。

3、添加映射

登录nat123客户端后,就是一步添加映射设置:windows客户端的nat123可以直接界面添加映射设置;Linux客户端的登录nat123官网管理后台进行添加修改映射等操作;添加映射时结合本地实际应用填写即可,参数详细参考:

应用名称:自定义,如“SSH”;方便简单识别区分和后续交流反馈;

映射线路:有开放线路,有体验线路,有按年使用线路服务等,这个看自己帐号权限选择用;

映射类型:根据本地具体场景选择对应合适类型,如对于像SSH走普通TCP协议的,一般选择“非网站”类型让外地直接远程访问;

内网地址:nat123客户端本机SSH服务的用127.0.0.1就行,内网另台主机的对应使用固定内网IP地址;

内网端口:如我本地SSH服务的22默认端口,这个以自己应用使用端口实际填写;

外网端口:默认生成一个可用的公网端口号,一般不用改,也可修改其他未占用的;

外网域名:默认提供显示一个随机二级域名,通常为了方便使用记住可以修改对应二级字符;如果有自主域名,则可以修改使用自己注册的域名来作为公网地址用;

确认保存即生效。如是win客户端,对应主界面上可以见到多了一个映射记录图标,同时有显示对应内外网地址信息,鼠标停留上面会有状态检测提示参考。

五、外网访问ssh

在外地电脑需要访问内网SSH远程时,通过命令或SSH客户端进行访问即可,添加连接SSH服务时,使用对应的nat123映射设置好的域名端口地址。

需要说明的是,SSH服务本地默认端口是22,但经过nat123映射设置后生成外网端口,也就是说,我们在外网访问时是使用 对应外网端口号和域名的来连接访问。如命令-p 选项来修改端口号,比如连接到SSH服务外网1234端口:

ssh -p 1234 ldz@域名

在使用SSH客户端添加连接访问时,对应地址端口填写使用域名和外网端口号。

SSH是远程管理Linux常见手段、对于文件传输和安全通信的便捷帮助方法。通过掌握SSH各种功能和配置选项,您可以更有效地进行远程系统管理。了解和使用SSH远程,以及无公网IP借助nat123端口映射打通内外网,将使您在编程和系统管理领域更具竞争力,为您的工作带来巨大便利。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、配置SSH服务
  • 二、防火墙开放ssh端口
  • 三、内网访问SSH
  • 四、设置nat123端口映射内网ssh开放到公网上
  • 五、外网访问ssh
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档