linux下配置NAT服务
网络地址转换(NAT)是用于将一个地址域(如:专用Intranet)映射到另一个地址域(如:Internet)的标准方法。NAT允许一个机构专用 Intranet中的主机透明地连接到公共域中的主机,无需内部主机拥有注册的(以及越来越缺乏的)Internet地址。 Internet工程任务组意识到目前地址空间(即所谓的IPv4)即将会耗尽已经有近十年时间了。尽管即将出现的IPv6被视作为解决Internet 不断发展的长期解决方案,但是在过去几年中还提出了其它一些短期解决方案。
我这里写的主要是如何配置一个NAT 服务器,关于NAT 的知识,大家不妨到网上google 一下,
有很多讲这个的咚咚。如果连这个也懒得去做的话,我就推荐你去中国IT 认证实验室linux 架站文
件系列中的一篇NATserver(http://www.chinaitlab.com/www/special/linux11.asp),你也可以在这里
(http://linux.vbird.idv.tw/)找到它的原文,不过是繁体的,看起来可能有些麻烦。在我看来这个作
者是一个很牛的人,却自称菜鸟,佩服!如果有时间的话,可以将他所写的一系列的文章都看看,
您会受益匪浅的!
好了下面开始讲如何配置NAT 服务器,我的环境是这样的:
服务器端:
1. 操作系统:Linux 2.6 核心
2. 双以太网卡:eth0 用于连接内部网络,内部IP 为:10.20.10.174
eth1 用于连接外部网络,外部IP 为:159.226.41.140
3. 使用iptables 配置NAT 服务
客户端:
1. Windows XP 客户端
2. Linux 客户端
配置步骤:
服务器端配置:
一. 首先将双网卡都驱动起来,并配置好其对应的IP 地址。
如果您的机器这部分已经配置好了的话,就可以直接进入第2 步,使用iptables 配置NAT 服务
了,否则请随着我一步步来。配置双网卡,最好一个个的来,而且最好两个网卡不是同一个型号的
芯片。具体为什么我也不清楚,有的人说不这样容易出错。这部分内容可以参考这两篇文章,讲述
的很是详细。安装网卡(http://www.chinaitlab.com/www/special/linux3.asp#3),在架设NAT 时安装
双网卡(http://www.chinaitlab.com/www/special/linux11.asp#9)
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0 IPV6INIT=no ONBOOT=yes USERCTL=no PEERDNS=yes GATEWAY= TYPE=Ethernet DEVICE=eth0 BOOTPROTO=none NETMASK=255.0.0.0 IPADDR=10.20.10.174 设定对内的网卡eth0 的参数,要了解各个参数的意义,请查阅/usr/share/doc/initscripts-*/sysconfig.txt $ vi /etc/sysconfig/network-scripts/ifcfg-eth1 IPV6INIT=no ONBOOT=yes USERCTL=no PEERDNS=yes GATEWAY=159.226.41.190 TYPE=Ethernet DEVICE=eth1 BOOTPROTO=none NETMASK=255.255.255.192 IPADDR=159.226.41.140 设定对外的网卡eth1 的参数。 $ vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=HPCOG-ASL 设定机器的网络信息,比如主机名,是否启动网络等。 $ vi /etc/resolv.conf nameserver 159.226.39.1 nameserver 10.0.0.5 设定DNS 服务器 $ vi /etc/modprobe.conf alias eth0 8139too alias eth1 3c59x 设定eth0 为第一个网卡模块的别名,eth1 为第二块网卡的别名。 $ modprobe 8139too 3c59x && lsmod 启动两个网卡模块 $ /etc/rc.d/init.d/network restart 重新启动网络,应该也可以使用ifup eth0 eth1 这个命令来实现。 $ /sbin/ifconfig 查看网络配置信息 $ /sbin/route 查看路由信息。 |
二. 使用iptables 模块配置NAT 服务:
#!/bin/bash #filename: nat.sh ##################Introduction#################### # 1. The file content if for configuring linux NAT server. # 2. Execution: # $ mkdir -p /usr/local/nat # $ cp nat.sh /usr/local/nat/nat.sh # $ chmod u+x /usr/local/nat/nat.sh # $ /usr/local/nat/nat.sh # or you can let it run automatically when machine reboots. # $ vi /etc/rc.d/rc.local # append "/usr/local/nat/nat.sh start" to it. # 3. modified by lirui 2005/08/10 # 4. mail me: colin719@gmail.com ################################################## IPTABLES='/sbin/iptables' EXTERNAL='eth1' EXTERNIP='159.226.41.141' INTERNAL='eth0' INTERNIP='10.20.10.0/24' #reset the three default ipchains $IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT #reset the nat table $IPTABLES -t nat -P PREROUTING ACCEPT $IPTABLES -t nat -P POSTROUTING ACCEPT $IPTABLES -t nat -P OUTPUT ACCEPT #flush the ipchains and nat table $IPTABLES -F $IPTABLES -t nat -F #delete non-default rules of ipchains and nat table $IPTABLES -X $IPTABLES -t nat -X #reset zero $IPTABLES -Z $IPTABLES -t nat -Z start(){ echo "Starting FireWall" #load necessary modules echo "Starting modprobe necessary modules for iptables" for i in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/* ; do t=`echo $i | sed 's//..o$//g'` mod=`basename $t` /sbin/modprobe $mod done #enable ICMP packet (ping) $IPTABLES -A INPUT -p icmp -j ACCEPT #enable communication inside local domain $IPTABLES -A INPUT -i $INTERNAL -s $INTERNIP -j ACCEPT $IPTABLES -A OUTPUT -o $INTERNAL -d $INTERNIP -j ACCEPT #enable ip masquerade echo "1" >/proc/sys/net/ipv4/ip_forward $IPTABLES -t nat -A POSTROUTING -o $EXTERNAL -s $INTERNIP -j MASQUERADE # $IPTABLES -t nat -A POSTROUTING -s $IPDOMAIN -j SNAT --to $OUTIP # $IPTABLES -t nat -A PREROUTING -d $EXTERNIP -p tcp --dport 21 -j DNAT --to $FTPIP # $IPTABLES -t nat -A PREROUTING -d $EXTERNIP -p tcp --dport 80 -j DNAT --to $WEBIP # Attention: there are no security!!! } stop(){ echo "Stopping firewall" for i in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/* ; do t=`echo $i |sed 's//..o$//g'` mod=`basename $t` /sbin/modprobe -r $mod done #disable ipv4 packet forwarding echo "0" >/proc/sys/net/ipv4/ip_forward } restart(){ stop start } #see how we were called case $1 in start) start ;; stop) stop ;; restart) restart ;; *) echo $"Usage:$0 { start | stop | restart }" exit 1 esac |
以上是我的一些简单的配置,对于复杂的配置,您可能还需要加入许多的内容哟.
linux下配置NAT服务相关推荐
- Linux下配置OpenLDAP服务记录
摘要:最近部门需要整合所有的系统,所以领导说要通过OpenLdap数据库来实现对所有系统的统一管理,所以需要在服务器上配置一下LDAP服务,我们这里选择的是OpenLdap服务,我在网上搜索了很多,开 ...
- Linux下配置DNS服务
一.DNS服务简介 DNS服务器,也称为域名解析服务器,是用来将互联网上的域名解析为IP地址的一类服务器,在世界上有成百上千台DNS服务器.对于有些公司来说,对于同一个域名可能有多个DNS服务器,这样 ...
- linux未识别smb服务,Linux下配置smb服务
1.在有网的情况下安装软件 yum -y install samba 2.查看配置文件 vim /etc/samba/smb.conf 3.安全级别 安全级别: share 共享级别(不需要密码) u ...
- Linux系统终止httpd服务,【转】Linux下apache/httpd服务启动与停止
apache服务,或者说httpd服务,如何启动,如何开机启动. 转来转去,找不到原文.. 操作系统环境:红帽5,具体如下: # uname -a Linux machine1 2.6.18-164. ...
- Linux下配置jupyter notebook远程访问实战:配置Jupyter的连接密码、启动jupyter服务、远程访问jupyter(关闭防火墙)
Linux下配置jupyter notebook远程访问实战:配置Jupyter的连接密码.启动jupyter服务.远程访问jupyter(关闭防火墙) 目录 Linux下配置jupyter note ...
- Linux下的samba服务配置详解
Linux下的samba服务配置详解 一.Samba介绍 二.Samba工具及特性 三.搭建环境介绍 四.Samba配置步骤 1.服务端操作 2.在客户端操作 五.测试用户的权限情况 一.Samba介 ...
- Linux下配置FTP、SSH服务
在虚拟机中的Linux系统下配置FTP服务和SSH服务,配置完后就可以通过SecureCRT软件登录Linux系统. 配置FTP服务: 在Linux终端中输入命令: sudo apt-get inst ...
- linux 怎么配置apache,在Linux下配置Apache Web服务
<在Linux下配置Apache Web服务>由会员分享,可在线阅读,更多相关<在Linux下配置Apache Web服务(10页珍藏版)>请在人人文库网上搜索. 1.在Lin ...
- linux vnc 改端口号,RHEL6下配置vncserver服务(包括修改vnc端口)
RHEL6下配置vncserver服务(包括修改vnc端口) (2012-04-13 23:36:07) 标签: it 配置完vsftpd后,还必须要开的服务就是vnc啦, 首先,在root用户下利用 ...
最新文章
- 输入法编程教程---软键盘(小键盘?)类,C++编写
- 《Python 学习手册4th》 第四章 介绍Python对象类型
- from flask.ext.wtf import Form 报错 ModuleNotFoundError: No module named 'flask.ext'
- 13. python 类
- LinuxMint(Ubuntu)安装文泉驿家族黑体字
- linux exit 源码,Linux命令——exit、sulogin、rlogin
- jmeter(四十五)常用Beanshell脚本
- c# Form中的键盘响应
- 什么是值传递?什么是引用传递?
- Java数据持久层框架 MyBatis之API学习五(Mapper XML 文件)
- Jmeter的Throughput有误差与分布式测试时的坑
- 编译ROS-Academy-for-Beginners
- Jsp基本指令和动作
- 从优秀到卓越 pdf_演讲口才培训:演讲能力是卓越领导者需要具备的能力
- matlab生成chirp信号,chirp信号(chirp信号的产生)
- html老师祝福语,给大学老师的祝福语
- matlab绘三维椭球面_MATLAB绘制三维图形
- mac版 IGV(版本2.12.3)安装
- 【EduCoder答案】冯诺伊曼体系结构建模与模拟实训
- 支付宝支付-当面付和App支付
热门文章
- VC#复习资料(是轩~)
- matlab白光干涉,matlab白光干涉
- 【解决】Expanding invalid MinMaxAABB
- 第 7 篇、Linux C基础 | 变量和常量
- Cannot read properties of undefined (reading ‘extraneous‘) npm install时
- 在线视频学习网站的设计与实现
- python的scipy简介
- python五子棋程序教程_Python 五子棋 编程
- 3D美术人员Technical Artist(TA技术美术)的学习之旅(3)
- 30个必备英文免费手写字体下载