Linux中iptables设置nat时,NAT的具体实现是依靠conntrack来实现的,具体参考这个回答

安装conntrack-tools花了点功夫。

netfilter downloads下载conntrack-tools,解压,按照INSTALL的说明安装

1
2
3
4
5
6
7
8
wget https://netfilter.org/projects/conntrack-tools/files/conntrack-tools-1.4.5.tar.bz2
tar xf conntrack-tools-1.4.5.tar.bz2
cd conntrack-tools-1.4.5/

# install
./configure --prefix=/usr
make
make install

中途会提示各种包libnetfilter-*缺失,或者版本过低,都是按照同样的方法下载然后再configure和make(install),或者版本够的话,也可以apt安装

比如libnetfilter_queue

1
apt install libnetfilter-queue-dev # 一般都是 libnetfilter-*-dev这种形式

如果版本过低,需要将原来的lib删掉,再重新make安装,比如libnetfilter_conntrack在ubuntu18.04lts中安装的是1.0.6版本,但要求1.0.7的

1
2
3
4
5
6
7
8
9
10
11
apt uninstall libnetfilter-conntrack-dev

cd libnetfilter_conntrack-1.0.7/
# install
./configure --prefix=/usr
make
make install

# 检查版本
pkg-config --modversion libnetfilter_conntrack
#1.0.7

参考资料