ip转发 linux?linux开启路由转发功能

Linux系统如何使用iptables进行本地端口转发

在工作环境中接触到iptables有时候需要进行端口转发功能,例如我本机不开放那些端口的,但可以使用它来进行转发到使用的端口上。下面小编给大家介绍一下如何使用iptables进行本地端口转发。希望对大家有所帮助。

1、首先登陆我们的内网服务器,工作机不能随便拿来用的。

2、再查看一下我们系统里当前使用的端口情况

3、从上图可以查看到我们系统里边的22端口和25是使用的。

下面我开启一下系统的ip转发功能:echo 1>/proc/sys/net/ipv4/ip_forward

4、我们也可以通过编辑/etc/sysctl.conf文件来启用ip转发,然后再使用sysctl命令生效。

5、例如我们将连接服务器 43999端口的连接都转发到22端口上面去,可以使用下面的命令

iptables-t nat-A PREROUTING-p tcp-i eth0-d 192.168.31.147--dport 43999-j DNAT--to 192.168.31.147:22

6、这样就可以实现在外面也可以通过43999端口连接ssh了。其实我们的43999端口是在系统里没有开的,但通过转发就可以使用了。

7、以上只是使用了在外面的情况,但如果在服务器里边是使用不到43999端口的。

8、这里我们还可以在里边进行设置本地转发。

9、再从本地进行测试,也是可以连接了,虽然端口是没有开启的。

注意事项:

iptables转发功能需要系统的支持才行,如果系统不开启,即使设置了也没有用。

开启Linux系统路由转发功能实现多网段电脑共享上网

目前,Linux的主要应用在服务器领域,但是它的许多功能还没有被充分挖掘出来,比如,我们通过简单设置,就可以让Linux变成一台出色的路由器。本文介绍如何利用Linux系统的路由功能,实现多网段电脑共享上网方法。

一、Linux系统开启IP转发功能

Linux系统要达到路由器功能,首先得打开Linux系统内核中的IP转发功能。我们可以通过以下命令来查看是否开启。less/proc/sys/net/ipv4/ip_forward该文件内容为0,表示禁止数据包转发,1表示允许,将其修改为1。可使用命令echo"1">/proc/sys/net/ipv4/ip_forward来启用IP转发路由功能。

但这种方式不能长期有效,只能保证当次有效,如果执行重启系统操作,那么又得重新执行命令。因此,为了保证系统路由功能永久有效,用vi编辑器打开vi/etc/sysctl.conf配置文件,将net.ipv4.ip_forward= 0修改为1,保存后退出。这样,每次重启系统都不用重新设置内核IP转发了。

二、Linux系统实现路由功能,共享上网

在LINUX系统下实现路由功能,两种方法来实现,一种是通过IPTABLES工具的NAT转发功能,一种是使用IPROUTER2工具集中的IP ROUTE命令子集来实现。这两种方法各有优缺点,使用哪种方法,主要看你所在的网络使用哪种方法连接互联网。

IPTABLES工具适合动态IP地址以及固定公网IP地址方式,同时,还提供了网络地址转换功能,此功能不仅能使使用私有IP地址的内网PC连接上互联网,而且还提供外网能过DNAT功能访问处于内网中的各种网络服务,以用隐藏内容IP网络段,增加了安全性。IP ROUTE工具同样适应与IPTABELS相同的两种上网方式,但不能提供NAT功能。

不过,有许多特殊的网络路由功能,是通过这两个工具共同合作的才能实现的,例如,将要讲到的策略路由、负载均衡、多WAN出口路由等。因此,笔者在此分别列出这个工具实现路由功能的命令内容,其后,在介绍如何通过这两个工具合作,完成更加高级的功能。

1、IPTABLES工具的NAT方式开启LINUX路由功能,其通过动态拔号方式连接互联网的命令如下所示:

# iptables-t nat-A POSTROUTING-d 192.168.1.0/24-s 0/0-o ppp0-j MASQUERD

其中,ppp0是你拔号网络接口名称,在这之前,需要设置好与拔号相关的内容,我们可以通过编辑/etc/sysconfig/network-scripts/ifcfg_ppp0配置文件来实现该功能。

通过固定公网IP地址方式连接互联的实现方法如下:

# iptables-t nat-A POSTROUTING-s 192.168.1.0/24-j SNAT--to-source 202.103.224.58

其中,这个固定公网IP地址是由当地ISP分配给你的,在这也是由笔者自行假设的,具体的IP地址得根据你所在ISP所在地来决定。

2、通过IP ROUTE工具来实现Linux系统的路由功能

通过动态拔号上网方式连接互联网的命令如下所示产:

# ip route add via ppp0 dev eth0

通过固定公网IP连接互联网的命令如下所示:

# ip route add via 202.103.224.58 dev eth0

经过以上两种方法中的任何一种的设置,我们的LINUX系统就具有路由功能了。这样,所处在局域网内部的PC都能够通过这台LINUX路由器共享上网了,但前提条件是要设置这些局域网中的PC的IP地址为此IP地址段中的任何一个,但不能相同,192.168.1.2-192.168.1.254,同时,设置它们的网关地址全部为192.168.1.1,这是LINUX路由器中连接局域网网卡的IP地址。

由于我们设置的局域网中没有使用DHCP服务器,在实现上网的过程中,所有的计算机都需要有用户手工设置IP地址。

总结

利用Linux系统的路由功能来实现共享上网,实现方法比较简单,最重要的是这种实现方法不仅可以减少IP资源的占用,而且Linux对硬件的要求比较低,不像windows系统那样对硬件有很高的要求。

在Linux系统上实现IP转发的方法

大家好,今天我们学习一下在 Linux上用 iptables实现从一个网络接口到另一个接口的IP转发(数据包转发)。IP转发的概念是,使 Linux机器像路由器一样将数据从一个网络发送到另一个网络。所以,它能作为一个路由器或者代理服务器,实现将一个连接的互联网或者网络连接共享给多个客户端机器。

这是一些启用IP转发或网络包转发方法的简单步骤。

1.启用 IPv4转发

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

代码如下:

$ sudo-s

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

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

代码如下:

# nano/etc/sysctl.conf

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

代码如下:

net.ipv4.ip_forward= 1

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

代码如下:

# sysctl-p/etc/sysctl.conf

   2.配置 Iptables防火墙

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

代码如下:

# ifconfig-a

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

代码如下:

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

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

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

# iptables-A FORWARD-i eth2-o wlan2-m state--state ESTABLISHED,RELATED-j ACCEPT

   3.配置 NAT

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

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

   总结

最后,我们在我们以 iptables作为防火墙 Linux机器上成功的配置了从一个接口到另一个接口的数据包转发。这篇文章教给你将你的私有接口连接到互联网,不需要桥接接口,而是将从一个接口进来的数据包路由到另一个接口。就是这些,如果你有任何问题、建议、反馈,请写到下面的评论框中,然后我们可以改进或更新我们的内容。非常感谢!享受吧:-)

阅读剩余
THE END