Linux SSH 远程运维

Linux 内网穿透:不开公网端口登录内网服务器

自己搭 frp 要先有一台有公网 IP 的云服务器,教程都跳过了这一步。Linux 内网穿透的另一条路:一行命令装客户端、控制台建映射,22 端口不必开到公网。

Linux 内网穿透这件事,搜出来的答案几乎是同一条:找一台云服务器,装 frp,服务端一份配置、客户端一份配置。这条路走得通,教程也写得细——细到从第一步「下载对应平台的二进制」开始讲起。

但真正的第一步在那之前。所有教程都默认你已经跨过去了,没有一篇把它写成一步:你得先有一台有公网 IP 的服务器。

这一页先帮你判断要不要走那条路;如果不走,再讲怎么把一台没有公网 IP 的 Linux 机器开出去——以及开出去之后,22 端口会遇到什么。

终端里用 ssh 命令连上远程服务器,主机是分配到的域名、端口是分配到的号码,已落到远程 shell 提示符
做完之后就是这样:主机名换成分配到的域名、端口换成分配到的那个,其余照旧
先算清那一步

Linux 内网穿透要不要自己搭:先看第零步

教程从「下载二进制」开始编号。在那之前还有一步,它决定了这条路对你贵不贵。

先说结论看你有没有那台机器

手上已经有一台闲着的公网服务器、也愿意自己维护它——那自建更自由,配置全在你手里,想怎么改怎么改。

没有的话,第零步就是这条路的第一笔开销:为了把一台内网机器开出去,先去租一台常年在线的公网机器。剩下的工序都建立在它之上。

把两条路要做的事并排摆出来,判断会容易些。左边是自己搭一套 frp 之类的工具,右边是装个客户端把 22 端口单独开出去。

你要做的事自己搭一套装个客户端
一台有公网 IP 的机器先得有不需要
两侧各下二进制、各写一份配置一行命令,自动认平台与架构
开机自启两侧各写一次 systemd 服务单元装完就是系统服务,重启自动拉起
加一条映射、改个端口登进服务器改配置文件、重启服务控制台点一下就生效
出问题怎么查自己翻两侧日志一条命令导出诊断包交客服
谁来扛安全认证、加密、防爆破全自理爆破防护与访问规则是现成的

这张表里最容易被低估的是第四行。前三行是一次性的,忍一忍就过去了;而加映射、改端口是一直在发生的事——每一次都要 SSH 进那台服务器、改配置文件、重启服务。教程之所以永远显得轻松,是因为教程只需要跑通一次。

还有一件表里放不下的事:那套自建设施你今天为 SSH 搭起来,哪天想拿它做点别的,工序会重新长出来。把本地服务开成网站给外面访问就是这样——国内环境下还要过备案和 HTTPS 证书那两关,本地网站怎么让外网访问那页把这条路单独讲了。纯 SSH 映射走的是 TCP,不涉及备案,但它也用不上那套设施的其余部分。

先看清产物

SSH 映射拿到的是一个域名加一个随机端口

不是一个 IP,也不是一个网页地址,而是一组能直接填进 SSH 客户端的「主机 + 端口」。

建一条协议为 TCP、本地端口填 22 的映射,拿回来的是一个域名加一个端口号。域名的前缀和那个端口号都由服务端分配,不是你能挑的,也猜不出来——这一点本身就有用:公网上按 22 端口全网扫的那批流量,从一开始就落不到你身上。

控制台映射列表里展开一条 SSH 映射,本地地址 127.0.0.1:22 指向分配到的公网域名与端口,状态在线
左边是机器上的 22 端口,右边是分配到的入口。页首那张终端截图连的就是这一条

用起来和平时没区别,只是主机名换成这个域名、端口号换成分配到的那个。ssh 命令的 -p、PuTTY 的 Port 框、终端工具的连接配置,填的都是同一组值。密钥、known_hosts~/.ssh/config 里的别名,一切照旧。

服务器没有屏幕

客户端装在哪、映射又在哪建

厂商教程常把这一步写成「在客户端界面里点添加」——而你要装的那台机器根本没有界面。

分类的维度不是操作系统,是这台设备有没有图形界面。有界面的(比如你自己的 Windows 电脑)装桌面客户端,映射在客户端里建;没界面的(Linux 服务器、树莓派)走一行安装命令,装完到网页控制台里建映射。

命令要带上账号的 API Key,它在控制台的「个人设置」里,sk- 开头:

Terminal window
curl -fsSL https://api.beesdc.com/api/v3/download/install.sh | FLYNAT_API_KEY="<你的 API Key>" sudo -E sh

Ubuntu、Debian、CentOS、Armbian 的命令逐字相同,脚本自己认操作系统和 CPU 架构,树莓派这类 ARM 设备也不必换写法。

Linux 终端执行一行安装命令后的输出,逐项打勾直到映射上线,末尾列出管理命令
装完它自己起来,并当场观察十几秒确认真的上线了,不是提交完就算数

然后到控制台建映射。场景预设里有 SSH 这一项,选中之后协议、本地地址、本地端口都替你填好了——TCP、127.0.0.1、22,把这台服务器的 22 端口映射出去要填的就是这三项。远程那一端由服务端分配,不用你填。

控制台新建映射弹窗,选中 SSH 场景预设,协议 TCP、本地地址 127.0.0.1、本地端口 22 已自动填好
选中 SSH 预设,剩下的字段是填好的;设备选那台刚装完客户端的 Linux 机器
真正卡人的地方

装完之后:它在跑吗,重启还在吗,连不上怎么查

装是不会卡的,一行命令的事。会卡的是装完——它到底起来没有、断了是哪一段断的。

它在跑吗

一条 sudo flynat-manage status 看两件事:客户端正在运行、设备已注册。两项都过,机器这一侧就没问题了。

重启还在吗

在。客户端装完由系统服务托管,机器断电重启、内核升级重启之后自动拉起,不用你写服务单元、也不用手动去起。

连不上怎么查

sudo flynat-manage diagnose 导出一个诊断包,发给客服直接定位。不必自己描述现象,也省掉来回问的那几轮。

Linux 终端执行 flynat-manage status,输出显示客户端正在运行、设备已注册两项都打勾
机器这一侧只有两项要确认;映射通不通、跑了多少流量,是控制台那一侧的事

这一节看着琐碎,但它是自建那条路上最容易漏算的部分。两侧的服务各自会不会开机自启、断了谁负责拉起来、日志散在哪两台机器上——这些都得你自己安排。教程通常写到「启动成功」就结束了。

别急着建第二条

一条映射顺带把 SFTP 和 scp 也带出去了

它们本来就走同一个端口,不必各建一条,也不多占额度。

SFTP 不是另一个服务,它跟着 SSH 走同一个端口。映射建好之后,把同一组域名与端口填进 FileZilla、WinSCP 或者 sftp 命令,直接就能传文件——完整操作步骤见 SFTP 文件传输

备份脚本和同步任务也是一样:scprsync 用的还是这条映射,改的只是目标主机和端口那两个参数,脚本其余部分不用动。

所以「传文件要不要再开一条」这个问题,答案是不用。你为 22 端口建的那一条,已经把这些一起带出去了。

从一台到十台

多台机器怎么管:每台一条,还是只开一个跳板

两种都常见,分界线是这些机器彼此之间通不通。

散在各处:每台各建一条

机器分布在不同地方——一台在客户机房、一台在办公室、一台在家——它们之间本来就不互通,那就各装一次客户端、各建一条映射。用同一个账号登录,这些设备在控制台是一个列表,谁在线、谁掉了一眼能看到。

代价是条数按套餐算,机器多了要先看额度够不够,见价格页

同一个内网:只开一个跳板

机器都在同一个内网里,那就没必要一台一条:挑一台常开的做入口,只给它建映射,其余机器从它跳过去。这也是我们自己在用的方式。

好处不只是省条数——外面能碰到的入口从 N 个收回 1 个,要收窄访问规则也只有一处要配。代价是那台机器成了单点,它掉线其余的也一并进不去;另外它的账号得管起来,谁能登、离职了怎么收回,这些映射侧管不了。

控制台映射管理页列出两台设备,一台 Rocky Linux、一台 Windows,都显示在线
不同系统的机器在同一个列表里;命令装的和客户端装的没有区别
这条口子被敲得最勤

22 端口一开,就会有人不停地试

随机入口挡掉了全网扫,但只要地址被谁知道了,撞库还是会来。

做这个产品之前,我们把一台 Linux 机器的 22 端口直接开到了公网,同一批还开了台 Windows 的远程桌面。几天之后就出事了:Windows 那台中了勒索病毒,Linux 那台最后重装。RDP 暴露公网安全吗那页专门讲了 Windows 这一侧。

Linux 那台当时只跑了一个 frpc,机器上没有别的东西,损失才停在重装——这是运气,不是设计。顺带一提,它之所以挂在公网上,正是因为它在做内网穿透:自己搭那套方案,会多出一台常年在线、开着 SSH 的机器要守,而它通常不在任何人的资产清单里。

产品的爆破防护之所以重点识别 SSH 与远程桌面这两类,起因就是这件事。

这一侧默认在挡

爆破防护重点识别的正是 SSH 与远程桌面这两类高频被撞的服务,异常访问会被分级拦截,拦下的来源进防护日志。其他协议不承诺同样的识别能力。

动作:把自己的固定出口 IP 加进放行名单,免得误伤

那一侧只有你能做

撞库撞的就是密码那一层。这一层归你自己的服务器管,映射侧代劳不了——没有密码可撞,是最干净的做法

动作:服务器上关掉密码登录,只留公钥

客户端的爆破防护页面,展示被拦截的异常访问记录
防护默认开着,拦下的来源按 IP 进日志;图里计数是 0,因为这台机器还没被撞过

回到那台重装过的机器:换成密钥登录之后,它再没被入侵过——但日志里的爆破尝试一天都没停过。这两件事要一起看。改完不会安静,撞的人不会走;变的是他们再也没有东西可撞。

再往上还能收:只放行公司或家里的固定出口 IP、只在工作时段开。设置在客户端「安全 → 访问规则」里,逐条说明见安全指南

诚实地说

什么时候别选它

这几种情况,另有更合适的答案。

  • 第零步你已经跨过去了 —— 手上就有一台闲着的公网服务器,也愿意自己维护它。那自建确实更自由:配置全在你手里,想加什么改什么都不用问别人。这一页开头那张表,右边那列的好处对你就不成立了。
  • 生产核心系统,或有等保、合规审计要求 —— 走专线或零信任方案,别用任何形式的公网映射。
  • 团队要整段内网可达(内网服务发现、一堆机器随便连)—— 那是 VPN 的题目,不是单条映射能覆盖的。
  • 要传的是大批量数据 —— SFTP 走的也是同一条映射,限速一样,先按套餐带宽算一遍时间,见价格页

把本地服务创建为公网映射

免费版包含 1 条映射、1 Mbps 和 1 GB/月流量

免费开始
在线客服在线客服