IP转发的概念:

使 Linux 机器像路由器一样将数据从一个网络发送到另一个网络。所以,它能作为一个路由器或者代理服务器,实现将一个连接的互联网或者网络连接共享给多个客户端机器。

1. 启用 IPv4 转发

首先,我们需要在我们的 Linux 操作系统上启用 IPv4 转发。要做到这点,我们需要使用root用户在 shell 或终端下执行下面的命令。

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

临时IP转发

注意:上面的命令能马上启用ip转发,但只是临时的,直到下一次重启。要永久启用,我们需要使用我们惯用的文本编辑器打开 /etc/sysctl.conf 文件。

#vim /etc/sysctl.conf

然后,增加net.ipv4.ip_forward = 1 到文件中,或者删除那行的注释,保存并退出文件。

net.ipv4.ip_forward= 1

运行下面的命令启用更改。

#sysctl -p /etc/sysctl.conf

2. 配置 Iptables 防火墙

我们需要允许特定的(或者所有的)数据包通过我们的路由器。在这之前,我们要知道连接我们 Linux 的网络设备的接口名称。我们可以通过在终端或者 shell 运行以下命令获得接口名称。

#ifconfig -a

这里,在我们的机器中, eth0 是连接到互联网或者网络的网卡接口, wlan2 是我们要使用 iptables 从 eth0 转发数据包的接口。要实现转发,我们需要运行以下命令。

#iptables -A FORWARD -i wlan2 -o eth0 -j ACCEPT

注意:请用你 Linux 机器中的可用设备名称替换 wlan2 和 eth0。

现在,由于netfilter/iptables是一个无状态的防火墙,我们需要让 iptables 允许已建立的连接通过。要做到这点,我们要运行下面的命令。

3. 配置 NAT

然后,最后我们需要通过执行下面的命令修改发送到互联网的数据包的源地址为 eth0。

#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

最新文章

  1. 转: IntelliJ IDEA 2016.2.2注册码
  2. IE插件BHO
  3. linux安装svn服务器(yum方式)
  4. python bottle框架(WEB开发、运维开发)教程
  5. Android StrictMode介绍
  6. Linux进程的状态转换图
  7. 【Android Developers Training】 38. 文件共享需求
  8. 各种输出速度比较(小白应该来看看,dalao绕道)
  9. git hub 的使用步骤
  10. flask blueprint
  11. CentOS 6.5系统中安装配置MySQL数据库
  12. 个股和股票池的beta系数的估算
  13. 题解——洛谷P2294 [HNOI2005]狡猾的商人(差分约束)
  14. 使用vim时生成的.swp文件
  15. vs2017常用快捷键
  16. dokuwiki 配置 sendmail 邮件发送
  17. Codeforces Round #364 (Div. 1) (差一个后缀自动机)
  18. WebClient类
  19. mysql主从配置(5分钟解决问题)
  20. DP较为完整的知识

热门文章

  1. NFS介绍、服务端安装配置、NFS配置选项
  2. Error creating bean with name 'entityManagerFactory' defined in class path resource解决方案
  3. 谷歌地图 API 开发之获取坐标以及街道详情
  4. matlab实现PSNR
  5. .Net Core+Vue.js模块化前后端分离快速开发框架NetModular更新日志(2019-12-08)
  6. Tomcat eclipse 启动时一个工程影响另一个工程
  7. luogu P4943 密室 |最短路
  8. AntV G2 图表tooltip重命名
  9. Java修炼——四种方式解析XML_DOM4J
  10. MongoDB第四天(操作文档,添加,更新,查询以及对于日期的相关操作)