一、网络结构如下:

Internet

路由器A (Lan:192.168.1.1)

Linux路由器(eth0接路由器A,IP:192.168.1.2,网关:192.168.1.1)

↑            (eth1接Switch:IP:192.168.0.1,网关不要填)

Switch

PC1 | …… | PCn

(PC1接Switch,IP:192.168.0.2,网关:192.168.0.1)

二、按以上顺序接好各设备,并按如下内容设置:

1、路由器A:将其设置成能上互联网,Lan口设置IP:192.168.1.1,子网掩码:255.255.255.0。

并添加一条路由:route add -net 192.168.0.0 network 255.255.255.0 gw 192.168.1.2 (根据我的经验,如果不加这个命令,会导致路由器A无法向PC1。。。PCn发送数据)

2、Linux路由器eth0接路由器A,IP:192.168.1.2,子网掩码:255.255.255.0,网关:192.168.1.1。

3、Linux路由器eth1接Switch,IP:192.168.0.1,子网掩码:255.255.255.0,网关不要填。

4、PC1…… n接Switch,IP:192.168.0.0/24,子网掩码:255.255.255.0,网关:192.168.0.1。

三、启动封包转发

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

四、启动网络设备

# ifup eth0

# ifup eth1

五、日志记录

1、打开日志配置文件:

# vim /etc/syslog.conf

2、增加一行:

kern.=debug      /var/log/router.log

3、记录日志:

# iptables -A FORWARD -p tcp -j LOG --log-level debug --log-prefix "router test ------ "

就这样,一个简单的Linux路由器就架设成功了。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以上是我转载的,另外我在自已的VirtualBox虚拟机上做了类似的实验:配置linux路由器,使两个局域网之间能通讯

路由器是linux系统,

eth0 ip为192.168.56.35 对应VirtualBox的Ethernet adapter VirtualBox Host-Only Network

eth2 ip为192.168.57.1对应VirtualBox的Ethernet adapter VirtualBox Host-Only Network #2

我们的目的是实现xpVC6访问win2003上的网页

win2003上有php做的网站,ip为192.168.56.25 对应VirtualBox的Ethernet adapter VirtualBox Host-Only Network,

默认网关为192.168.56.35(如果不这样设置,会导致xpVC6可以ping向win2003,但是win2003无法回应xpVC6,最终xpVC6看到的结果就是ping不通win2003)

xpVC6的ip为192.168.57.3 对应VirtualBox的Ethernet adapter VirtualBox Host-Only Network #2

默认网关为192.168.57.1

打开linux内核的包转发功能:

修改/etc/sysctl.conf中的net.ipv4.ip_forward = 1

然后执行sysctl -p,使内核参数修改生效

# iptables -A FORWARD -j ACCEPT

在linux上执行tcpdump -i eth0 -vnn icmp

然后在xpVC6(192.168.57.3)上ping win2003(192.168.56.25)

最终linux上显示

[root@gis sysconfig]# tcpdump -i eth0 -vnn icmp

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

00:00:59.969797 IP (tos 0x0, ttl 127, id 214, offset 0, flags [none], proto ICMP (1), length 60)

192.168.57.3 > 192.168.56.25: ICMP echo request, id 512, seq 29184, length 40

00:00:59.971002 IP (tos 0x0, ttl 128, id 381, offset 0, flags [none], proto ICMP (1), length 60)

192.168.56.25 > 192.168.57.3: ICMP echo reply, id 512, seq 29184, length 40

00:01:00.978717 IP (tos 0x0, ttl 127, id 215, offset 0, flags [none], proto ICMP (1), length 60)

。。。。。。

虽然实验到此结束了,但是我发现两个局域网在通讯的时候路由器不需要进行NAT(至少我没有在iptables中配置nat表,只是配置了filter,当然局域网上公网必须NAT,应为局域网中的私有IP不能出现在公网上)

路由器能运行linux程序么,用Linux系统做路由器相关推荐

  1. linux 程序占内存,linux下,一个运行中的程序,究竟占用了多少内存

    1. 在linux下,查看一个运行中的程序, 占用了多少内存, 通常的命令有php (1). ps aux:html 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存.linux RSS列 ...

  2. linux 程序占内存,linux概念之程序占用内存

    1.在linux下,查看一个运行中的程序,占用了多少内存,一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物理内存 ...

  3. linux命令行运行c程序,如何在Linux中编写和运行C程序

    Linux正在成为开发人员的编程天堂,成为开源和免费操作系统. Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境. 在本文中,我们将解释如何编写,编译和运行 ...

  4. 单片机上运行linux程序代码,在Linux下烧录51单片机

    原标题:在Linux下烧录51单片机 *本文作者:LEdge1,本文属 FreeBuf原创奖励计划,未经许可禁止转载. 背景 我一直在学习Linux 系统,但是最近还要学习51单片机,所以在Linux ...

  5. linux可以运行Windows程序吗,如何Linux系统上运行Windows应用程序(7)

    比较 下面是对运行于 Windows XP 上的和运行于 Red Hat 的 GNOME 中的消息框(Message Box)视觉上的对比: 对应于此的 C 代码(callDll.cpp 中第 60 ...

  6. 安卓8.1运行linux,在 Linux 上安装安卓 8.1 Oreo 来运行应用程序和游戏 | Linux 中国...

    android x86 是一个自由而开源的项目,将谷歌制作的安卓系统从 ARM 架构移植到了 x86 架构,可以让用户在他们的桌面电脑上运行安卓系统来享受所有的安卓功能和应用程序及游戏. 在前一段时间 ...

  7. linux程序设计项目报告,Linux程序设计实验报告大作业

    Linux程序设计实验报告大作业 实 验 报 告 课程名称: LINUX程序设计 学 院: 计算机学院 专 业: 软件工程 班 级: 14-3 姓 名: 张正锟 学 号: 201401061038 2 ...

  8. 整个linux程序的框架,Linux兼容Win32程序,一个框架、两个界面

    Linux兼容Win32程序,"一个框架.两个界面" Linux兼容Win32程序,"一个框架.两个界面" [日期:2007-07-19] 来源:Linux公社 ...

  9. linux程序无法启动,Linux无法启动解决方法[阮胜昌]

    2007-10-22 22:27 linux中修复GRUB 呵呵,最近2003系统老出问题,主要是防火墙导致很多聊天软件都用不了@|@哎,有时候甚至把MBR文件也弄没了没办法重新安装GRUB么???? ...

最新文章

  1. 第二章 序列比对——Blast局部比对
  2. Facebook的一些基本操作(网页版)
  3. 企业选择网站建设能够对自身带来哪些作用?
  4. docker-compose部署nginx,挂载外置配置文件及项目
  5. 获取版本号_Windows 10 2004迎来KB4577063更新 版本号升至19041.546
  6. div不能控制tr和td的隐藏
  7. Hibernate 查询数据
  8. MPI 自定义通用结构和传输
  9. java 开发常用工具下载
  10. Python解运筹学问题
  11. Android接入融云即时通讯SDK,实现单聊和发送自定义消息。
  12. UE4 HUD相关的笔记
  13. netty源码分析及优点
  14. 案例研究:什么是自动驾驶?
  15. 第5章 LinearR/PLR/SVR/KNN/DTR/RFR(测算房价)
  16. C语言与Java的异同
  17. 1367:查找二叉树
  18. 十个相似图片搜索网站(以图找图)
  19. 基于角膜反射的学习心得
  20. Nuxt.js理解 开启SSR渲染(介绍)---00

热门文章

  1. Codejock.Xtreme.Suite.Pro.ActiveX+Toolkit_v15.3.1-国内最新版
  2. 注意,这4种不良生活习惯容易诱发高血压,赶紧改!
  3. js函数中的with用法
  4. vue项目用ip不能访问,用localhost可以访问
  5. python做一个故事生成器
  6. B. Most socially-distanced subsequence(思维+模拟)
  7. 安装Anaconda,Powershell输入python出现警告问题
  8. 英特纽购途索的商业模式是否存在裂变效应?
  9. 初级工程师职称怎么评?职称通过率高的人才都是这么规划!(下)
  10. 苹果WWDC2011大会正式发布云服务iCloud