Linux网络安装, 配置与使用

date: 2013.05.23; modification:2018.07.10

目录:

1 命令行配置静态地址

vi /etc/network/interfaces

auto eth0
iface eth0 inet static
address 192.168.5.242
netmask 255.255.0.0
gateway 192.168.88.1

2 修改主机映射表

功能: 指定主机名查找方法, 通常指先查找文件/etc/hosts,找不到时再向DNS服务器请求. 对于大多数用户不用改动此文件内容.

Linux: /etc/host.conf文件内容order hosts, bind

multi on

Soalris: /etc/nsswitch.conf 中的hosts项

hosts files, dns

/etc/host.conf文件 该文件指定如何解析主机名. Linux通过解析器库来获得主机名对应的IP地址. 下面是一个"/etc/host.conf"的示例:

order  bind,hosts
multi  on
nospoof  on

3 配置路由

sudo route add default gw 172.16.6.0    # 添加默认路由
sudo route add -net IP/24 eth1
sudo route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.254 dev eth0 # 添加指定网络的路由
sudo route add -host 192.168.168.119 gw 192.168.168.1
sudo route add -host 192.168.168.110 dev eth0

sudo route del default                  # 删除默认网关
sudo route del gw 172.16.2.254          # 删除网关172.16.2.254
sudo route del -net 172.16.86.0/24      # 删除网络172.16.86.0

4 DNS

对于linux来说, 在/etc/resolv.conf中配置dns服务器. 但是在ubuntu中用vim打开这个文件你会发现有如下文字的提示:

DO NOT EDIT THIS FILE BY HAND - YOUR CHANGES WILL BE OVERWRITTEN

所以不能直接个性这个文件, 这个内容可能会被覆盖

在ubuntu中dns信息是放在/etc/resolvconf/resolv.conf.d/目录下

一般情况下这个目录下有base和head两个文件.

sudo vim /etc/resolvconf/resolv.conf.d/base

nameserver 8.8.8.8
nameserver 114.114.114.114

保存后执行

sudo resolvconf -u

用以下命令使网络设置生效

sudo service networking restart

5 VPN连接

安装:

sudo apt-get install pptp-linux

连接:

sudo pptpsetup --create pptpd  --server x.x.x.x  --username 11111  --password  00000  --encrypt --start

注:

-create是创建的连接名称
-server是vpn的ip地址
-username是用户名
-password是密码, 也可以没这个参数, 命令稍后会自动询问. 这样可以保证账号安全
-encrypt 是表示需要加密, 不必指定加密方式, 命令会读取配置文件中的加密方式
-start是表示创建连接完后马上连接

注: 如果是用windows server 2003 搭建的VPN服务器的话链接需要在 /etc/ppp/peers/下面的链接文件里面加上refuse-eap

/etc/ppp/peers/目录是存储的拨号配置文件
/etc/ppp/options.pptp 链接配置文件可以在里面添加加密方式
/etc/ppp/chap-secrets   是存储的拨号 账户 和密码 

VPN建立好之后是无法用VPN上网的, 因为默认是没有添加VPN的默认路由的. 添加默认路由:

route add -net 0.0.0.0 dev ppp0

6 网络转发(可以当网关用)

修改: /etc/sysctl.conf

修改:

net.ipv4.ip_forward=1

如果本来不存在则手动添加. 然后重启机器(或者不重启而输入sudo sysctl -p).

重启后查看是否生效:

cat /proc/sys/net/ipv4/ip_forward

如果显示值为1, 则表示成功开启.

配置转发:

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o wlan0 -j MASQUERADE

说明:

保存配置:

sudo iptables-save 

7 命令行设置Wifi

  1. 编辑配置文件

    sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

添加:

network={
  ssid="essid_xxx"
  psk="wifi-password"
  priority=1
}
  1. 连接

执行下列命令, 或者将其加入启动脚本

sudo ifconfig wlan0 up
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf & # 连接wifi
sleep 7
sudo dhclient wlan0  或者 sudo dhcpd wlan0 # 自动获取ip.

8 桥接配置

8.1 Ubuntu桥接配置

进入桌面右下角的网络配置图标的: "编辑连接"图形界面.

1. 删除原有的网卡的连接配置(eth0, ...)
2. Add(增加) -- Virtual(虚拟) -- Bridge(桥接)
3. 在"桥接"选项卡 -- 桥接连接(Bridged Connections) -- 增加(Add) -- 以太网(Ethernet) -- 新建, 进入桥接以太网编辑窗口.
4. "以太网"选项卡 -- "设备", 点击选择需要桥接到的硬件网卡. 并保存.
5. 回到原本的桥接编辑窗口 -- "常规"选项卡 -- 确保勾选"可用时自动链接到这个网络" 和 "所有用户都可以连接到这个网络" 这两项.
6. "IPv4设置"选项卡 -- 设置需要的IP, 可以与步骤1中原本的上网配置一致即可.
7. 点击保存.
8. 回到桌面右下角图标, 重新联网即可. (有可能需要运行一下: sudo /etc/init.d/networking restart)

更多详细信息参见: How to configure a Linux bridge with Network Manager on Ubuntu

桥接原理图可以参见: libvirt kvm 虚拟机上网 - Bridge桥接

8.2 CentOS6.5桥接配置

vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=10.10.5.2
NETMASK=255.255.255.0
GATEWAY=10.10.5.1
DEFROUTE=yes 
DNS1=202.106.0.20

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=none
BRIDGE="br0"
NAME="System eth0" 
HWADDR=00:22:44:66:88:aa

重启网络:

sudo service network restart # 如果不好使, 可以尝试重启机器.

查看配置结果:

brctl show