我想使用 ssh 连接到服务器 1.2.3.4 托管的虚拟 VM。VM 的 IP 是 10.10.10.100。
“nft list ruleset”打印:
表 inet 过滤器 { 链式输入 { 类型过滤器钩子输入优先级0;政策删除; iif“lo”接受评论“接受任何本地主机流量” ct 状态无效删除注释“删除无效连接” ct 状态已建立,相关接受评论“接受来自我们的流量” ip6 nexthdr ipv6-icmp icmpv6 类型 { 目标不可达、数据包太大、超出时间、参数问题、mld 侦听器查询、mld 侦听器报告、mld 侦听器完成、nd-router-solicit、nd-router-advert、nd-neighbor-solicit、nd-neighbor-advert、ind-neighbor-solicit、ind-neighbor-advert、mld2-listener-report } 接受评论“接受 ICMPv6” ip 协议 icmp icmp 类型 { 目标不可达、路由器通告、路由器请求、超出时间、参数问题 } 接受注释“接受 ICMP” ip 协议 igmp 接受注释“接受 IGMP” tcp dport ssh accept comment “在端口 22 上接受 SSH” tcp dport { http, https, 8008, http-alt } accept comment “接受 HTTP(端口 80、443、8008、8080)” } 链向前{ 类型过滤器钩子转发优先级0;政策丢弃; } 链式输出 { 类型过滤器钩子输出优先级0;政策接受; } } 表 ip nat { 链式输入 { 类型 nat hook 输入优先级 0;政策接受; 计数器数据包 3 字节 180 } 链预路由 { 类型 nat hook 预路由优先级 -101;政策接受; 计数器数据包 12 字节 2122 dnat 到 tcp dport 映射 { 10100 : 10.10.10.100 }:tcp dport 映射 { 10100 : ssh } } 链后路由 { 类型 nat hook postrouting 优先级 0;政策接受; snat 到 ip saddr 映射 { 1.2.3.4 : 10.10.10.100 } } }
“nmap -p10100 1.2.3.4”表示:10100/tcp 过滤 itap-ddtp
“ssh 1.2.3.4” 有效。
在服务器上“ssh 10.10.10.100”有效
“sysctl net.ipv4.ip_forward”打印“net.ipv4.ip_forward = 1”
答案1
我的问题是 virt-manager 和 nftables 不兼容。virt-manager 使用 iptables。
也许有解决办法。
对我来说,使用 virt-manager 比使用 nftables 更重要。
Firewalld 与 virt-manager 兼容,因此为了使用 virt-manager,我“必须”学习 Firewalld。
答案2
刚刚创建了一个帐户来尝试回答您的问题。我遇到了类似的问题。我认为您缺少的是允许 IP 进入正向链。类似这样的内容:
chain forward {
type filter hook forward priority 0; policy drop;
ip daddr 10.10.10.100 ct status dnat accept;
}
希望这对您的问题有帮助。