首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debian iptables

Debian iptables
EN

Unix & Linux用户
提问于 2020-07-16 19:18:21
回答 1查看 100关注 0票数 0

相当一段时间以来,我一直试图转发VPN内部的两个设备之间的端口或/和连接,但我无法理解。我在Debian9.0 x64和ExternalIP上安装了VPS。我从github创建了基于hwdsl2/setup VPN的vpn。它已经安装好了,一切正常。我可以通过VPN连接到服务器,我的IP地址可以更改为ExternalIP。

现在的问题是,我想走另一条路。

IncommingIP -> (eth0) ExternalIP -forwarded to-> (pppX) VPNIP

我的currnet iptables如下所示:

代码语言:javascript
复制
# Generated by iptables-save v1.6.0 on Mon Jun 29 10:55:31 2020
*nat
:PREROUTING ACCEPT [21617:1100891]
:INPUT ACCEPT [17101:829091]
:OUTPUT ACCEPT [703:55681]
:POSTROUTING ACCEPT [703:55681]
-A PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 8.8.8.8
-A PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination 8.8.8.8
-A POSTROUTING -s 192.168.42.0/24 -o eth0 -j MASQUERADE

#-A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.42.10:8080
#-A POSTROUTING -d 192.168.42.10 -o ppp0 -p tcp --dport 8080 -j SNAT --to-source 192.168.42.1
-A PREROUTING --src 0/0 --dst 192.168.42.10 -p tcp --dport 8080 -j REDIRECT --to-ports 8080


COMMIT
# Completed on Mon Jun 29 10:55:31 2020
# Generated by iptables-save v1.6.0 on Mon Jun 29 10:55:31 2020
*filter
:INPUT ACCEPT [16:676]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [221:33480]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol none -j DROP
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m multiport --dports 500,4500 -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol ipsec -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -j DROP

在我尝试前/后路由之后,有一些不起作用的剩馀部分。

我应该更改什么来使它作为转发工作,比如说测试端口8080?另外,为什么我不能在VPN网络内连接?(只有ping在工作)那么括号里的数字到底是什么?:PREROUTING ACCEPT [21617:1100891]

请帮帮忙

EN

回答 1

Unix & Linux用户

发布于 2020-12-11 21:12:25

你的NAT规则不正确。尝试以下操作(假设您刚刚刚刚安装了IPSec/VPN服务器)

查看现有NAT链规则(删除前):

代码语言:javascript
复制
$ sudo iptables -t nat -L -n --line-numbers

删除现有的NAT规则:

代码语言:javascript
复制
$ sudo iptables -t nat -D POSTROUTING 3

重复上面的命令,直到剩下以下两条NAT规则:

代码语言:javascript
复制
1    MASQUERADE  all  --  192.168.42.0/24      0.0.0.0/0
2    MASQUERADE  all  --  192.168.43.0/24      0.0.0.0/0            policy match dir out pol none

现在是时候添加DNAT规则了,它将把TCP 8080从internet IP (1.2.3.4)转发到VPN客户端IP (192.168.42.10)。

代码语言:javascript
复制
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to-destination 192.168.42.10:8080

这就是你所需要的。然后,如果所有工作正常,则可以保存iptable规则。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/598882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档