ubuntu12.04单卡server(mentohust认证)再加上交换机做路由软件共享上网

最近成立了实验室的网络环境中,通过交换机连接的所有主机实验室。想要一个通过该server(单卡)做网关,使用mentohust认证外网,然后内网中的其它主机通过此网关来连接外网。

1.首先在server上利用mentohust连接外网,然后在终端输入ifconfig命令来查看获得的外网ip:

eth0      Link encap:以太网  硬件地址 b8:ac:6f:d8:8f:a2
          inet 地址:115.156.236.116  广播:115.156.236.255  掩码:255.255.255.0
          inet6 地址: 2001:250:4000:4400:4003:3056:bf9a:df7f/64 Scope:Global
          inet6 地址: 2001:250:4000:4400:baac:6fff:fed8:8fa2/64 Scope:Global
          inet6 地址: fe80::baac:6fff:fed8:8fa2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:31284 错误:0 丢弃:1 过载:0 帧数:0
          发送数据包:19074 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000
          接收字节:37252618 (37.2 MB)  发送字节:2297121 (2.2 MB)

lo        Link encap:本地环回
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:14588 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:14588 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0
          接收字节:2383317 (2.3 MB)  发送字节:2383317 (2.3 MB)

从上面能够看到获得的外网ip为115.156.236.116,须要记下这个ip,以下会用到。

2.给网卡eth0配置第二个ip。即内网网关。在终端中输入下面命令就可以实现:

sudo ifconfig eth0:0 192.168.0.254 up

完毕后在终端输入ifconfig看到的输出结果例如以下:

eth0      Link encap:以太网  硬件地址 b8:ac:6f:d8:8f:a2
          inet 地址:115.156.236.116  广播:115.156.236.255  掩码:255.255.255.0
          inet6 地址: 2001:250:4000:4400:4003:3056:bf9a:df7f/64 Scope:Global
          inet6 地址: 2001:250:4000:4400:baac:6fff:fed8:8fa2/64 Scope:Global
          inet6 地址: fe80::baac:6fff:fed8:8fa2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:38759 错误:0 丢弃:1 过载:0 帧数:0
          发送数据包:22017 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000
          接收字节:42439643 (42.4 MB)  发送字节:2741665 (2.7 MB)

eth0:0    Link encap:以太网  硬件地址 b8:ac:6f:d8:8f:a2
          inet 地址:192.168.0.254  广播:192.168.0.255  掩码:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1

lo        Link encap:本地环回
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:15363 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:15363 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0
          接收字节:2459095 (2.4 MB)  发送字节:2459095 (2.4 MB)

3.开启server的路由功能,在终端中输入下面命令:

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

4.设置iptables,在终端中依次输入例如以下命令:

sudo iptables -F   #关闭防火墙
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to 115.156.236.116 #地址欺骗

这一步配置完毕以后。内网的其余主机就能够通过静态的配置内网ip(192.168.0.X)。网关为server的内网ip即192.168.0.254,dnsserver设为8.8.8.8就可以上网。关于server(网关)ping不同内网其它主机的原因是其它主机的防火墙没有关闭,尤其是windows系统。

5.上述操作都是一次性的。每当server重新启动了都要执行一遍。所以最好写个脚本整合一下。在写脚本之前有个问题须要先解决,server(网关)是通过mentohust上网的。而mentohust通过dhcp方式上网不能保证每次获取的ip都同样。所以须要能用命令获取主机的ip,我们在观察ifconfig之后终端里显示的内容:

eth0      Link encap:以太网  硬件地址 b8:ac:6f:d8:8f:a2
          inet 地址:115.156.236.116  广播:115.156.236.255  掩码:255.255.255.0
          inet6 地址: 2001:250:4000:4400:4003:3056:bf9a:df7f/64 Scope:Global
          inet6 地址: 2001:250:4000:4400:baac:6fff:fed8:8fa2/64 Scope:Global
          inet6 地址: fe80::baac:6fff:fed8:8fa2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:38759 错误:0 丢弃:1 过载:0 帧数:0
          发送数据包:22017 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000
          接收字节:42439643 (42.4 MB)  发送字节:2741665 (2.7 MB)

eth0:0    Link encap:以太网  硬件地址 b8:ac:6f:d8:8f:a2
          inet 地址:192.168.0.254  广播:192.168.0.255  掩码:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1

lo        Link encap:本地环回
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:15363 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:15363 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0
          接收字节:2459095 (2.4 MB)  发送字节:2459095 (2.4 MB)

我们须要得到的仅仅是当中的115.156.236.116,这一部分能够通过grep配合awk命令来截取出来,详细输入在终端里的命令例如以下:

ifconfig | grep -C 2 -w '\<eth0\>' | grep -C 1 inet6 | grep 'inet 地址' | awk -F ' ' '{print $2}' | awk -F ':' '{print $2}'

我们须要在脚本中利用这个结果。所以要在脚本中将该结果赋值给一个变量。以方便我们在脚本中使用,脚本文件的内容例如以下:

#!/bin/bash
Server_ip=$(ifconfig | grep -C 2 -w '\<eth0\>' | grep -C 1 inet6 | grep 'inet 地址' | awk -F ' ' '{print $2}' | awk -F ':' '{print $2}')
sudo ifconfig eth0:0 192.168.0.254 up
sudo echo "1">/proc/sys/net/ipv4/ip_forward
sudo iptables -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to $Server_ip

将脚本文件保存为某一文件名称,比如ConnectTheNet,然后为其添加可运行权限:

sudo chmod a+x ConnectTheNet

这样在每次重新启动server后,先用mentohust连接到外网。然后在终端运行一次该脚本就可以:

sudo ./ConnectTheNet

这就像它的完成~

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-08 06:45:33

ubuntu12.04单卡server(mentohust认证)再加上交换机做路由软件共享上网的相关文章

ubuntu12.04单网卡服务器(mentohust认证)加交换机做软路由共享上网

最近在搭建实验室的内网环境,实验室的所有主机通过一台交换机连接起来,想通过其中的一台服务器(单网卡)做网关,利用mentohust认证外网,然后内网中的其他主机通过此网关来连接外网. 1.首先在服务器上利用mentohust连接外网,然后在终端输入ifconfig命令来查看获得的外网ip: eth0 Link encap:以太网 硬件地址 b8:ac:6f:d8:8f:a2 inet 地址:115.156.236.116 广播:115.156.236.255 掩码:255.255.255.0 i

(详解)Windowns Server DHCP服务器,华为交换机做DHCP 中继

拓扑图如下 详细配置分解文件下载

[分享]Ubuntu12.04安装基础教程(图文)

原文地址: http://teliute.org/linux/Ubsetup/lesson21/lesson21.html 1.进入 live cd 桌面 1)设置好启动后,断开网络,然后重新启动动计算机,能够用硬盘启动,也能够刻成光盘启动,镜像的下载地址: 进入后找蓝色链接点击下载,如 ubuntu-12.04-desktop-i386.iso,64位CPU能够下载amd64的版本号:http://mirrors.sohu.com/ubuntu-releases/12.04/ WinXP硬盘安

VirtualBox中安装Ubuntu12.04/Ubuntu14.04虚拟机

NOTE: 一开始安装的Ubuntu12.04,后来又重新安装了14.04.截图基本使用了安装12.04时的截图,后来安装14.04时又补充了几张.该安装过程对Ubuntu12.04和14.04都是适用的. 1. 选择版本 1.1 Ubuntu桌面版与服务器版的区别 桌面版与服务器版,只要发布版本号一致,这两者从核心来说也就是相同的,唯一的差别在于它们的预期用途.桌面版面向个人电脑使用者,可以进行文字处理.网页浏览.多媒体播放和玩游戏.本质上说,这是一个为普通用户所定制的多用途操作系统.另一方面

华科校园网内ubuntu12.04用锐捷客户端联网流程详解

刚开始一直都用mentohust联网,这个比较方便,只需要配置网络的基本属性,ip,网关等,然后安装mentohust的deb文件,再通过sudo mentohust 来配置用户名,密码等就成功了. 可是后来mentohust突然找不到服务器,一直以为是mentohust或者系统出了问题,实验室的小伙伴重复百遍,重装系统,重装mentohust,重新配置,依然不能上网,因为时间原因这个暂时放下了,而我当时也只是在windows下进行编程,所以也没太在意. 直到工作找完后意识到公司需要应聘者有li

ubuntu12.04 安装android sdk /ndk/源码 编译环境

做android已经近5年了,期间android的各种环境都自己配过,自己是个想法比较多的人,各自神奇到想法都有,包括写博客,但是一直是没有具体落实...想法再多,不去努力实现也只能是想法了,今天准备从写博客这个小事开始做起,磨练自己到,不废话了,直接进入主题: 一.JDK(下载并安装jdk),注意事项如下: a.32位需要下32的,64位的也注意是下载64位的: b.配置环境变量: $ sudo gedit /etc/profile           在文件的末尾加上如下内容:       

ubuntu12.04下搭建ftpserver

楼主想把同学硬盘里面的200多G电影共享给实验室的小伙伴们看,就打算在内网server上搭建一个ftp的server. 1.安装ftp 首先在终端下键入例如以下内容,安装ftpserver: sudo apt-get install vsftpd 2.配置ftp 改动ftp的配置文件,该文件在/etc文件夹下,在终端中键入例如以下命令以打开配置文件: sudo gedit /etc/vsftpd.conf 简单的改动下面几个配置项就可以: #禁止匿名訪问 anonymous_enable=NO

ubuntu12.04+cuda6.0+opencv2.4.9

更新了cuda之后,opencv的gpu模块又要重新编译了,这个地方有一个疑问,我对cuda6.0装了两次,第一次装好之后,没有配一个bumblebee,重装了cuda6.0之后,发现原来编译的opencv2.4.9又要重新编译,这边有理解一下为什么同一个cuda的版本,重新安装了一下,opencv下的gpu模块要重新编译,是不是因为nvcc是实时编译的原因. 好了,通过bumblebee安装Nvidia卡驱动的时候出了很多问题,这里把所有的问题一并写出,一开始以为装个驱动直接ubuntu里面有

ubuntu12.04安装mysql5.6.30 及遇到的问题解决

系统环境:ubuntu12.04(32bit) 需要安装的mysql版本是5.6.30 在安装5.6.30之前,找到网上的资料,安装了5.5的版本,后来,我将5.5的卸载了,再安装5.6的. 首先,去Mysql官网找自己系统对应的版本,我是想通过deb版本安装的. $ cd  /usr/local/src    #一般下载的文件都放到这里 $ sudo wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-server_5.6.30-1d