Ubuntu 开启 ufw 的问题

310 天前
 monkeydev
我买了一台服务器,ssh 端口非 22 ,例如 12121

在 Ubuntu 上开启了 UFW 防火墙,并且 SSH 端口不是默认的 22 端口,导致无法通过 SSH 连接到 Ubuntu 系统

请问有什么方式自动判断 ssh 端口,然后添加端口到防火墙昵,再执行 sudo ufw enable
1173 次点击
所在节点    问与答
15 条回复
Salud
310 天前
westoy
310 天前
自己写个 systemctl 脚本, 尾行 sshd.service , 一启动就去读/etc/ssh/sshd_config 看绑定的是哪个端口, 然后去操作 ufw
infun
310 天前
ufw 不是默认开启的
可以先查看/编辑 SSH 的端口
```bash
vim /etc/ssh/sshd_config
/etc/init.d/ssh restart
```
然后再设置 ufw
baobao1270
310 天前
1. 查看 /etc/ssh/sshd_config 配置,找到当前配置的 SSH 端口,比如 12121
2. ufw allow 12121
3. ufw enable
monkeydev
310 天前
@infun
感谢答复
我是希望在脚本执行的过程中,自动获取到 ssh 端口,然后自动添加,不需要自己去看
monkeydev
310 天前
@baobao1270
就是不想自己查看昵
感谢
monkeydev
310 天前
@Salud
这个脚本倒是没问题
就是想自动读取读取之后,然后自动添加昵
不想再手动执行啊
infun
310 天前
#!/bin/bash

# 查询 SSH 端口
ssh_port=$(sudo grep -i 'Port' /etc/ssh/sshd_config | awk '{print $2}')

# 启用防火墙规则
sudo ufw allow $ssh_port

# 重启防火墙
sudo ufw reload
monkeydev
310 天前
@infun
666
baobao1270
310 天前
@monkeydev 感觉你在问一个 X-Y problem


对于 X-Y Problem 的意思如下:

1 )有人想解决问题 X
2 )他觉得 Y 可能是解决 X 问题的方法
3 )但是他不知道 Y 应该怎么做
4 )于是他去问别人 Y 应该怎么做?

简而言之,没有去问怎么解决问题 X ,而是去问解决方案 Y 应该怎么去实现和操作

所以你为什么「需要自动判断端口」
ysc3839
310 天前
@Salud 个人建议换 firewalld ,网络管理器也建议顺便换成 NetworkManager 。
之前用 ufw 整点高级功能 (如端口转发) 发现不支持,缺少各种功能,然后在另一台 CentOS 的机子上弄过之后发现 firewalld 和 NetworkManager 都挺好用的,也不复杂,就直接换掉了。
cslive
309 天前
ufw 不太好用,跟 podman 有冲突,死活不放行 podman 容器端口,我直接卸了,用厂商提供的安全组
monkeydev
309 天前
@baobao1270
不是你说的意思

我写了一个脚本,这个脚本需要开启 ufw

但是开启 ufw 的话,会导致 ssh 断开

所以我想在我的脚本里面增加一个自动获取 ssh 端口,然后放行这个端口

这样我整个脚本就可以流畅运行了
psiKENT
308 天前
你的 ssh 端口总是在变化吗?
monkeydev
308 天前
@psiKENT
不变化
只是允许脚本的过程中,我希望实时获取,获取一次就可以
就是这个脚本我想写成一个
而不是想把获取 ssh 的单独再写一个,这个意思

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/954107

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX