论坛风格切换切换到宽版
  • 560阅读
  • 7回复

[问题求助]问一个DNAT与telnet的问题 [复制链接]

上一主题 下一主题
离线qw2006.
 
发帖
1975
C币
-140433
威望
358
贡献值
1
银元
-1
铜钱
4396
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
我打开了ip._forward,然后执行.

iptab.les -t nat .-A PREROUTING -d a.b.c.d -p tcp --dport 81 -j DNAT --to-destinati.on a.b.c.e:80             电子
iptables -t nat -A POSTROUTING -d a.b.c.e -p tcp --.d.port 80 -j MASQUERADE外贸

这个a.b.c.e提供http.服务。telnet a.b.c.e 80会得到正确返回.,.
但是t.elnet a.b..c.d 81却返回拒绝连接。<性病>

请问这是怎么回事呢?

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线re58.
发帖
2020
C币
-235673
威望
358
贡献值
1
银元
-1
铜钱
4480
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
语法没错,逻辑吗。。。
你的需求是什么啊?谁访问谁?从哪访问?外网内网?当前 iptables 设置又是什么?
这些都没说,是要猜谜语还是玩推理?

离线ppcynt.
发帖
1965
C币
-61033
威望
340
贡献值
1
银元
-4
铜钱
4335
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
哈哈。是我说少了。

先说目的吧。其实就是想用telnet来看看端口转发是否成功了。因为不想开浏览器去浏览就想用telnet加端口的方法。

iptables中所有的表filter和nat的所有链。都使用了ACCEPT策略——其实mangle因为弄不懂,就没有设置,使用的是默认策略。

离线問號.
发帖
2009
C币
-627237
威望
377
贡献值
4
银元
-1
铜钱
4493
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
>> 谁访问谁?从哪访问?外网内网?当前 iptables 设置又是什么?
还是一个没说

>> 其实就是想用telnet来看看端口转发是否成功了
谁访问谁?从哪访问?外网内网?

>> iptables中所有的表filter和nat的所有链。都使用了ACCEPT策略
是默认规则还是里面的具体规则?

>> 其实mangle因为弄不懂,就没有设置,使用的是默认策略。
“默认策略”又是什么策略?

说些题外话
不是很多人不愿意回答有些人的问题,是因为不知道怎么回答,问都没问清楚,想我这样,到底是谁在问谁?
很好的一篇文章〈提问的智慧〉在各个版几乎都有贴,google 上随便都能找到,又有多少人去看?
提问的人不要自己定性“XXX 没问题,YYY 却不行”,直接贴出客观数据就好了,有没有问题不是提问的人说了算的
像这样的问题(http://bbs.chinaunix.net/viewthr ... &extra=page%3D1),我觉得很可笑

离线wbkjiang.
发帖
2041
C币
-60548
威望
372
贡献值
1
银元
-1
铜钱
4538
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
版主教育的是。

这是我的iptables-save结果:
iptables-save

# Generated by iptables-save v1.2.7a on Wed May 31 16:42:37 2006

*nat

:PREROUTING ACCEPT [21195:1141849]

:POSTROUTING ACCEPT [7694:728967]

:OUTPUT ACCEPT [7695:729027]

-A PREROUTING -i eth0 -p tcp -m tcp --dport 81 -j DNAT --to-destination a.b.c.e:80

-A POSTROUTING -d a.b.c.e -o eth0 -p tcp -m tcp --dport 80 -j MASQUERADE

COMMIT

# Completed on Wed May 31 16:42:37 2006

# Generated by iptables-save v1.2.7a on Wed May 31 16:42:37 2006

*filter

:INPUT DROP [3335:697389]

:FORWARD ACCEPT [38993:27857805]

:OUTPUT ACCEPT [1134028:778542141]

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -i eth0 -p tcp -m tcp --dport 81 -j ACCEPT

-A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

COMMIT

# Completed on Wed May 31 16:42:37 2006
复制代码

在一楼的描述中,我把INPUT的策略说错了,应该是DROP。

这个机器是单独的网卡,希望实现访问a.b.c.d的81端口时候可以转到a.b.c.e的80端口。

下面是telnet的结果
telnet a.b.c.d 81

Trying a.b.c.d...

telnet: connect to address a.b.c.d: Connection refused
复制代码

离线haliao8.
发帖
2227
C币
-60440
威望
385
贡献值
1
银元
-2
铜钱
4841
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
哦,是的。机器只有一个网络接口。

a.b.c.d和a.b.c.e是一个网络里的两台机器。端口转发已经实现。

telnet a.b.c.e的80是可以的。可以返回页子内容。
telnet a.b.c.d的81就显示上面的错误。

离线computerfs.
发帖
2136
C币
5128
威望
390
贡献值
1
银元
-2
铜钱
4676
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
试试这个
service iptables stop

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -d a.b.c.d -p tcp --dport 80 -j DNAT --to a.b.c.e:81

iptables -t nat -A POSTROUTING -d a.b.c.e -p tcp --dport 80 -j SNAT --to a.b.c.d
复制代码

离线茶丸星.
发帖
2034
C币
-604957
威望
382
贡献值
6
银元
-5
铜钱
4567
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
容我赘言,版主可能错会我意了。

端口转发已经实现。即对a.b.c.d的81端口使用浏览器浏览可以访问到a.b.c.e的80提供的服务。

我的意思是:我使用telnet对a.b.c.d的81端口发出请求,却得到连接拒绝的提示;而telnet到a.b.c.e的80却可以得到页面内容。

-------
不过,现在出现了新问题。

我原来都是在Linux机器上telnetLinux自己的,结果返回
telnet a.b.c.d

Trying a.b.c.d...

telnet: connect to address a.b.c.d: Connection refused
复制代码

但是今晨使用同一网段内的WinXP机器却转发成功了。

有点混乱了,呵呵。

快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个