夜间模式暗黑模式
字体
阴影
滤镜
圆角
主题色
Centos7 开启 FullCone NAT

作者和源码:https://github.com/Chion82/netfilter-full-cone-nat

步骤简要:
1.编译fullcone nat内核模块
2.编译iptables,嵌入fullcone nat模块

编译内核模块需要内核的源码,centos7安装kernel-devel即可下载内核源码到本地,但用yum安装的kernel-devel很可能是已经update过的,也就是和目前的系统内核版本不一致,所以为了保持一致,先升级kernel,顺便安装上kernel-devel。
yum install kernel kernel-devel -y

安装完重启使新内核生效。
uname -a

编译前先安装必要的包:
yum install gcc libtool -y

开始编译fullcone nat内核模块:
cd /usr/src
git clone https://github.com/Chion82/netfilter-full-cone-nat.git
cd netfilter-full-cone-nat
make

如果没有报错,内核模块已经生成在当前目录xt_FULLCONENAT.ko

将这个模块放到modules对应位置,建立模块依赖,载入模块。
cp /usr/src/netfilter-full-cone-nat/xt_FULLCONENAT.ko /lib/modules/`uname -r`/kernel/net/netfilter/
depmod -a
modprobe xt_FULLCONENAT

查看模块
lsmod | grep xt_FULLCONENAT

接下来编译iptables,centos7的iptables版本是v1.4.21,为了减少可能出现的兼容性问题,同样以这个版本来编译。

cd /usr/src
git clone git://git.netfilter.org/iptables
cd iptables
git checkout 482c6d3731e2681cb4baae835c294840300197e6
cp /usr/src/netfilter-full-cone-nat/libipt_FULLCONENAT.c /usr/src/iptables/extensions/
./autogen.sh
./configure
make
make install

checkout就是切换至v1.4.21版本,新编译的iptables位置在/usr/local/sbin/iptables,不会和原先的冲突。

编译安装完成,重启下系统使新的iptables生效。

接下来是使用方法。

通过iptables命令来开启fullcone nat,eth0是外网网卡
iptables -t nat -A POSTROUTING -o eth0 -j FULLCONENAT
iptables -t nat -A PREROUTING -i eth0 -j FULLCONENAT

注意这里和以往用法的不同,以往MASQUERADE只需要1条-o命令,FULLCONENAT需要2条命令,需要在-i入口处多添加1条。

测试:

上一篇
下一篇