您当前的位置:首页 >技术文章

修改pptp vpn的默认端口

1、服务器端使用pptpd,网上找到3种方法:添加iptables规则、修改 /etc/services 文件和修改pptpd源代码。 



1-1、添加iptables规则 

这个方法很简单,就是在数据包进入网关时就修改其源端口为vpn的默认端口1723,实现端口重定向: 

iptables -t nat -A PREROUTING -p tcp --dport 31723 -j REDIRECT --to-ports 1723 
这样做的缺点是,占用了两个端口,而且还需要其他iptables规则来防止外网直接访问1723端口才能达到隐藏的目的。 


1-2、修改 /etc/services 文件 

/etc/services/ 文件里定义了标准网络服务所对应的端口。虽然不是强制使用,但pptpd就是使用其中定义的端口来提供服务的。搜索pptp,可以找到: 

... 
hks-lm           1722/tcp 
hks-lm           1722/udp 
pptp             1723/tcp 
pptp             1723/udp 
csbphonemaster   1724/tcp 
csbphonemaster   1724/udp 
... 
将pptp开头的两行后面的1723改成想使用的端口。如果pptpd服务已经启动了的话,就重新启动一下,就可以使用新端口了。如果对于不能重启pptpd服务的情况,这种方法就没有第一种方法好,但相对下面的方法也算很简捷了。 


1-3、修改pptpd源代码 

下载了pptpd的源代码,grep了一下,发现在 pptpdefs.h 文件里有如下定义: 

... /* PPTP ctrl message port */ #define PPTP_PORT 1723 ... 
尝试修改了,再编译安装后,运行发现不起作用,但是无论是原来的端口还是修改后的端口都没法使用。也不知道是哪里出错,暂时没找到原因。不过有了上两种方法,这个方法能否成功也无所谓了。

[2018-06-28 11:55]