ggooaall 发表于 2004-11-4 10:29:36

请问版主和各位大侠,如何实现lwip和外界主机通信啊?

在这里看到各位对cygwin和vmware+redhat的评价后,觉得选择vmpare好一些,经过快两天的努力,从头开始终于成功实现了ucos+lwip,现在请教一个问题就是:如果我想要在其他主机上ping通lwip,该怎么做啊?谢谢各位大侠了。 :-)

我得系统是win xp和vmware,redhat。

AlanZoo 发表于 2004-11-4 13:23:45

这个问题好像有点复杂。
首先,你的 vmware+redhat 可以上网了吗?

ggooaall 发表于 2004-11-4 14:24:39

可以了啊。使用的是host-only,就是说和主机windows使用同一个ip地址

是不是首先需要使用birdged,使用两个ip啊?

谢谢

AlanZoo 发表于 2004-11-5 10:53:42

1.Sorry,我没有使用过ucos+lwip;
2.我觉得你的问题主要在于理解vmware虚拟网卡的实现方式.网上这样的资料很多,可以看看.

ggooaall 发表于 2004-11-5 12:17:33

谢谢

如果在vmware下实现不方便的话,那么单纯在redhat9上实现的skyeye+ucos+lwip如何可以使外界主机ping通lwip啊。

chyyuu 发表于 2004-11-5 22:14:57

用iptables 实现网络重定向,王利明实验过,不过我还不会。
王利明呢?

ggooaall 发表于 2004-11-5 23:53:47

呵呵,希望能给一个更详细一点的解答阿。

   我对iptables这个东西都没听说过,最好能给个详细的步骤了:)

    另外问个额外的问题:如果我在linux下把linux中类似于windows中tcp/ip的东西卸载掉,只在linux中运行一个lwip的tcp/ip协议,可以实现么?可以保证获得ip地址么?

    如果可以的话linux中相应的软件包那个啊?

    请各位大侠给个建议啊:)

zhaotan 发表于 2004-11-6 11:24:07

试试在vmware中把网卡设置为bridge模式,这样虚拟网卡也可以获得独立的ip

ggooaall 发表于 2004-11-6 15:14:05

hehe ,谢谢,我知道这个。

关键问题是redhat的eth0和tap0的网络前缀不一样,需要修改路由。

walimis 发表于 2004-11-8 14:14:03

首先确定你的vmware的redhat可以和外界的机器通信。
我们需要用iptables进行ip伪装和端口重定向。前者让lwip的应用访问外界,后者让外界程序访问lwip。
假设你的lwip有个80端口的tcp服务,你想让外界的程序通过访问redhat的6000端口访问此服务。假设我们用10.0.0.0网段作为lwip的ip地址,运行如下脚本:
#!/bin/sh
MYIP=`ifconfig -a eth0 | grep inet | sed -e 's/^.*addr://' -e 's/ .*$//'`
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F INPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -t nat -F

iptables -A FORWARD -s 10.0.0.0/16 -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -j DNAT -p tcp -d $MYIP --dport 6000 --to 10.0.0.1:80
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/16 -j MASQUERADE

iptables -L -n -t nat
iptables -L

然后,外界的程序通过redhat的6000端口就可以访问lwip的80端口的服务了。lwip也可以访问外界。

ggooaall 发表于 2004-11-8 15:54:53

hehe ,万分感谢各位版主的热心帮助:) :-D:-D:-D
页: [1]
查看完整版本: 请问版主和各位大侠,如何实现lwip和外界主机通信啊?