【发布时间】:2011-08-16 08:47:14
【问题描述】:
我想学习和玩用于 python、java 或 c++ 的 tcp/ip 库。但是我只有一台电脑。是否可以“伪造”远程计算机来模拟远程主机,在 NAT 下结束一切?
【问题讨论】:
标签: networking tcp network-programming ip
我想学习和玩用于 python、java 或 c++ 的 tcp/ip 库。但是我只有一台电脑。是否可以“伪造”远程计算机来模拟远程主机,在 NAT 下结束一切?
【问题讨论】:
标签: networking tcp network-programming ip
您可以从在自己计算机上的程序之间进行通信开始。
您可以使用 VirtualBox、VMWare、VirtualPC 等虚拟机软件在您的机器中创建本质上是第二台机器并与之对话(尽管网络拓扑可能非常不寻常 - 需要了解更多信息)
如果你想与远程的东西交谈,你可以从亚马逊之类的公司租用一个运行 linux 或 windows 的小型云服务器,花几美分一小时,然后在上面安装你想要的任何东西。
【讨论】:
如果你使用的是linux,你可以配置dummy接口,然后将你的客户端/服务器绑定到不同的虚拟接口。
[mpenning@Bucksnort ~]$ sudo modprobe dummy
[mpenning@Bucksnort ~]$ sudo ip addr add 192.168.12.12/24 dev dummy0
[mpenning@Bucksnort ~]$ ip addr show dummy0
6: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN
link/ether b6:6c:65:01:fc:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.12.12/24 scope global dummy0
[mpenning@Bucksnort ~]$ ping 192.168.12.12
PING 192.168.12.12 (192.168.12.12) 56(84) bytes of data.
64 bytes from 192.168.12.12: icmp_seq=1 ttl=64 time=0.085 ms
^C
--- 192.168.12.12 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.085/0.085/0.085/0.000 ms
[mpenning@Bucksnort ~]$ sudo modprobe dummy -o dummy1
[mpenning@Bucksnort ~]$ sudo rmmod dummy
[mpenning@Bucksnort ~]$ ip addr show dummy0
Device "dummy0" does not exist.
[mpenning@Bucksnort ~]$
您应该能够像其他任何接口一样在这些接口上运行 ipchains。
【讨论】:
最简单的方法是在同一台计算机上运行服务器和客户端,并使用“环回”IP 地址:127.0.0.1,它始终连接到本地主机。我在测试期间已经多次这样做了。例如,在 NNN 端口上运行本地网络服务器,然后在浏览器中输入 http://127.0.0.1:NNN/ 实际上,127.X.Y.Z 应该始终与本地机器通信。
【讨论】:
使用虚拟机在您的系统中安装操作系统。对于任何网络应用程序,这是最好的。您不必在两个不同的系统上工作,并且很容易看到两端发生的事情
【讨论】:
运行到服务器以侦听您的网络适配器或本地主机。然后向相同的 IP 和端口发出请求。从逻辑上讲,这一切都发生在网络驱动程序中,但如果该 IP 地址被寻址到另一台机器(除非防火墙配置等),它的行为方式仍然相同
【讨论】: