马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Deepin 开启 SSH 服务,并让它在没有公网 IP 的情况下被远程连
Deepin 是基于 Debian 的 Linux 发行版,面向日常办公、学习和娱乐的使用体验,支持 30 多种语言,是国产桌面系统里用户覆盖面最广的一个。默认就带 SSH 服务端,开启之后在本机做点 SSH 端口转发或者配个内网穿透,就能在不在同一局域网时也能连回去。下面从头走一遍:开服务 → 改配置 → 打通跨网络的远程连接 → 固定地址。
一、开启 SSH 服务
Deepin 一般已经预装了 openssh-server,只需要启动并设为开机自启:
# 启动 ssh 服务
sudo systemctl start ssh
# 查看 ssh 服务状态
sudo systemctl status ssh
# 加入开机启动
sudo systemctl enable ssh
跑完 status 应该看到 active (running)。接着编辑服务端配置文件,把下面两行的注释去掉、值改成 yes:
sudo vim /etc/ssh/sshd_config
PermitRootLogin yes(需要 root 直连时开,但更推荐用普通用户 + sudo)
PubkeyAuthentication yes(密钥登录,比密码登录安全得多,建议开)
改完保存,重启一次生效:
sudo systemctl restart ssh
用 ss -tlnp | grep :22 确认 22 端口在监听,本地 ssh 用户名@127.0.0.1 先跑通,再谈远程。
二、跨网络远程:三条可选路径
局域网内 ssh [email protected] 就行;要在外面连回家,本质上只有三种办法。第三条最省事但要求宽带有公网 IP(现在大部分家庭宽带都没有)。
方案 1:反向隧道 + autossh(不依赖任何第三方)
在一台有公网 IP 的轻量云服务器上开一个中转端口,让 Deepin 主动连过去并维持隧道,外部流量经这条隧道回落到 22 端口。用 autossh 做断线重连:
# 云服务器侧:放行 2222 端口
sudo firewall-cmd --add-port=2222/tcp --permanent
sudo firewall-cmd --reload
# 云服务器侧:让网关把外部 2222 转发给自己的 2222
sudo vim /etc/ssh/sshd_config
# GatewayPorts yes
sudo systemctl reload ssh
# Deepin 侧:建立反向隧道,并写入 systemd 自启动
autossh -M 0 -f -N -o ServerAliveInterval=30 -o ServerAliveCountMax=3 \
-R 2222:127.0.0.1:22 user@公网IP
之后在外面任意机器:ssh -p 2222 user@公网IP,就进到 Deepin 里了。密钥登录推荐把公钥放到云服务器的 ~/.ssh/authorized_keys,别用密码反复试。
方案 2:frp 自建反向代理
如果还要顺带把别的服务(比如本机跑的 Web 服务、VNC 端口)一起暴露出去,frp 更顺手。服务端跑在云服务器:frps.toml 里监听 7000 并 allow ports 范围;客户端跑在 Deepin:frpc.toml 里写 [ssh] type = "tcp" local_port = 22 remote_port = 6000,再配一块 [web] 段映射本地 8080。改完 systemctl enable frpc 即可常驻。
方案 3:组网类工具(最省心)
Tailscale、ZeroTier 这类零配置组网,装完把两台机器拉进同一个虚拟网段,会直接在 ifconfig 里给你一个 100.x.y.z 的地址,直接 ssh [email protected] 就通了,不用碰端口、不用备案、也不用买公网 IP。个人自用体验最好,代价是流量要经过它们的中控节点。
三、安全上必须做的四件事
- 禁用密码登录:改
PasswordAuthentication no,只留密钥,能挡掉绝大多数爆破。
- 改默认端口:22 是扫描器第一目标的候选,换成 2222 之类,配合防火墙只放行常用出口 IP。
- 用密钥、别复用旧公钥:
ssh-copy-id 一次性推送公钥,作废的旧 key 记得从 authorized_keys 里删掉。
- 别开 root 直连:用普通用户 SSH,真要提权再
sudo。
四、常见连不上的排查顺序
- 本机
ssh [email protected] 通不通——不通是服务端问题(服务没起、配置写错)。
- 局域网内
ssh user@内网IP 通不通——不通是防火墙或 IP 段问题。
- 路由器端口映射有没有生效——在外网
telnet 你的公网IP 2222 看有没有响应。
- 隧道/组网客户端状态:
systemctl status autossh / frpc,看是不是掉线了、重连日志 里有啥。
五、小结
Deepin 开 SSH 只是两步(systemctl start ssh 加改 sshd_config),难点在跨域网络这一段。现在家庭宽带拿不到公网 IP 是常态,所以优先选自建反向隧道(autossh/frp)或组网工具(Tailscale / ZeroTier),少折腾第三方商业穿透:那种服务通常免费额度有限、地址 24 小时一变、数据还绕经别人节点,稳定性和隐私都不如自己搭。
qidao123.com企服评测-应用市场 编辑提示 |