我正在按照官方 Debian Wiki 教程在 Debian 11 上设置 VPN 服务器。
Forward traffic to provide access to the Internet
除了最后的段落外,一切都很好。
以下几行不起作用:
IF_MAIN=eth0
IF_TUNNEL=tun0
YOUR_OPENVPN_SUBNET=10.9.8.0/24
#YOUR_OPENVPN_SUBNET=10.8.0.0/16 # if using server.conf from sample-server-config
nft add rule ip filter FORWARD iifname "$IF_MAIN" oifname "$IF_TUNNEL" ct state related,established counter accept
nft add rule ip filter FORWARD oifname "$IF_MAIN" ip saddr $YOUR_OPENVPN_SUBNET counter accept
nft add rule ip nat POSTROUTING oifname "$IF_MAIN" ip saddr $YOUR_OPENVPN_SUBNET counter masquerad
这是输出:
root@server:/home/user# nft add rule ip filter FORWARD iifname "$IF_MAIN" oifname "$IF_TUNNEL" ct state related,established counter accept
Error: Could not process rule: No such file or directory
add rule ip filter FORWARD iifname enp1s0 oifname tun0 ct state related,established counter accept
^^^^^^
我在 3 个命令中遇到了类似的错误。我错过了什么吗?本教程中是否缺少某些内容?
看起来 Debian Wiki 的说明是建立在兼容性表和链之上的(或者可能是包中包含的
iptables-nft
默认存根),这是Debian 10 和更新版本的默认版本。/etc/nftables.conf
nftables
iptables
如果您从一个完全空白的配置开始
nftables
,则必须先创建表和链,然后再向其中添加规则:这会将您所有的自定义规则放入一个名为 的表中
custom
。如果您稍后添加一些其他软件来创建自己的 nftables 规则,它们很可能会使用自己的表,这应该可以消除它们意外清除您的自定义规则的可能性。您只需要检查挂钩优先级以确保不同表中规则链的合理处理顺序,并在必要时进行调整。注意:
custom
,FORWARD
这里POSTROUTING
只是你可以随意更改的名称,而其他所有内容都有特定的含义。这还允许您使用单个命令一次删除或暂时停用所有自定义规则:
这些在对您的规则集进行故障排除时可能会有所帮助。
要使规则持久化:
nftables
默认情况下不包含任何表或规则,您需要手动创建它们。请按照此处的手册操作:
https://wiki.debian.org/nftables#new_syntax