我有一个Ubuntu 22.04 VPS使用公共IP,我仅使用SSH访问VPS,我没有安装像这样的GUIXRDP或者虚拟网络控制器,我打算添加 CloudFlare 名称服务器,/etc/resolv.conf
也许这就是它的样子:
nameserver 1.1.1.1
nameserver 127.0.0.53
如果我这样做安全吗?或者我会失去对此服务器的 SSH 访问权限吗?
答案1
nameserver 1.1.1.1 nameserver 127.0.0.53
我会失去对此服务器的 SSH 访问权限吗?
更改名称服务器不会中断已建立的 SSH 连接。
只有当你们都依赖反向 DNS 记录进行访问控制时,新的 SSH 连接才会受到影响(通常不会,但这是允许的,例如from=
选项中˜/.ssh/authorized_keys
)并且您进行了重大更改,例如输入错误。
请进行更改,保持当前会话打开,并在更改后使用新会话登录。
如果我这样做安全吗?
安全的?是的。
最好的办法?可能不会。
该条目nameserver 127.0.0.53
表明(默认情况下)您的系统当前使用 systemd 解析器systemd-resolved
。
您可以检查并确认resolvectl status
如果您想管理和更改 systemd-resolved 在您的系统中使用的(公共)解析器,请更改resolved.conf
和/或直接插入./resolved.conf.d/*.conf
配置文件而不是/etc/resolv.conf
.
与传统的解析器行为不同,您通过添加名称服务器条目来获得 /etc/resolv.conf
继续使用 systemd-resolved 支持诸如DNS over TLS
本身这可能是您想要使用的原因之一云耀光和他们的1.1.1.1首先是公共解析器。
使用 TLS 的示例resolved.conf
,CloudFlare 公共解析器作为首选,Google 的作为备份:
# /etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.1 1.0.0.1
FallbackDNS=8.8.8.8 8.8.4.4
Domains=~.
#LLMNR=no
#MulticastDNS=no
DNSSEC=yes
DNSOverTLS=yes
#Cache=yes
#DNSStubListener=yes
#ReadEtcHosts=yes
重新启动相关服务(IIRC systemctl restart systemd-resolved
)后,您可能应该看到resolvectl status
返回
Global
LLMNR setting: no
MulticastDNS setting: no
DNSOverTLS setting: yes
DNSSEC setting: yes
DNSSEC supported: yes
Current DNS Server: 1.1.1.1
DNS Servers: 1.1.1.1
1.0.0.1
Fallback DNS Servers: 8.8.8.8
8.8.4.4
DNS Domain: ~.
答案2
如果该 VPS 上的 DNS 查找当前已损坏(否则您并没有真正更改任何内容)和你正在与一个奇怪的(我什至不确定需要什么样的奇怪,但它远远超出任何远程普通)IP/反向DNS设置连接,我不排除你可能会遇到问题,但这是两件非常不可能的事情,但两者都必须是真的。
我认为解决方法就是在进行编辑后但在关闭用于进行编辑的连接之前建立一个新连接(不会受到影响)。