linux设置为局域网主机

1、激活IP转发

为了设置网络共享,你需要在linux主机上更改一个内核参数来使能IP转发功能。内核启动参数设定在/etc/sysctl.conf文件中。

打开这个文件,定位到含有"# net.ipv4.ip_forward = 0"的这一行,移除#号(即取消注释),然后将其值设置为1,改好之后应该和下面的一致。

1.net.ipv4.ip_forward = 1

你还要使激活IP转发功能生效,通过执行下面的命令:

$ sudo sysctl -w net.ipv4.ip_forward=1

$ sudo sysctl -p

2、NAT配置

另一个网络共享的重要部分是NAT配置,这可以通过使用iptables的命令,iptables包含四个防火墙的规则表:

·FILTER (默认表格)

·NAT

·MANGLE

·RAW

这个教程中我们将仅使用两个表格:FILTER和NAT表格。

首先,刷新所有活跃的防火墙的规则。

$ sudo iptables -X

$ sudo iptables -F

$ sudo iptables -t nat -X

$ sudo iptables -t nat -F

在输入表格中,你需要设置转发链(FORWARD)成可接受的(ACCEPT)目的地,因此所有通过主机的数据包将会被正确的处理。

$ sudo iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

$ sudo iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

在NAT表中,你必须为你的WAN口启用IP伪装功能,我们假设WAN口协议是wlx085700c5b983。为了在wlx085700c5b983接口上使能IP伪造技术,我们使用以下的命令(wlx085700c5b983为可联网网卡名字):

$ sudo iptables -t nat -I POSTROUTING -o wlx085700c5b983 -j MASQUERADE

3、配置私有IP地址

在linux主机上的所有配置完成后,你需要配置其他设备(linux/windows的PC或笔记本)的DNS服务器以及默认网关,让它们的数据 流可以指向linux主机。注意你不需要在linux主机上设置一个DNS服务器,从其他设备发出的每一个DNS请求都会通过上游的ISP自动转发到linux主机上。

如果你的其他设备上用的系统是linux,你可以通过以下命令来更改他们的默认网关和DNS服务器。假设你的网段是192.168.1.0/24的私有IP地址网段,linux主机上绑定的IP地址是192.168.1.1。

$ sudo ip route del default

$ sudo ip route add default via 192.168.1.1

$ sudo sh -c "echo 'nameserver 192.168.1.1' > /etc/resolv.conf"

如果还有其他的linux设备,那么你可以重复以上命令。

如果你有windows设备,你可以通过控制面板的网络连接属性来更改默认网关和DNS服务器。

4、完整的脚本

这是一个在linux主机上设置网络连接共享的一个完整的脚本。WAN口(ppp0协议)需要根据你具体的网络接口协议来替换。

1.$ sudo vi /usr/local/bin/netshare

#!/bin/bash

## Internet connection shating script

sysctl -w net.ipv4.ip_forward=1

sysctl -p

iptables -X

iptables -F

iptables -t nat -X

iptables -t nat -F

iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -I FORWARD  -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -t nat -I POSTROUTING -o wlx085700c5b983 -j MASQUERADE

保存以上的脚本为/usr/local/bin/netshare,然后添加可执行权限通过执行下面的命令。wlx085700c5b983为可联网网卡名字

1.$ sudo chmod +x /usr/local/bin/netshare

如果你需要这个脚本开机启动,你需要在/etc/rc.local文件中执行这个脚本,并在该文件中的"exit 0"之前添加下面一行。

1./usr/local/bin/netshare

主机1设置完毕。

内网主机设置及主机2

1.打开配置文件sudo vim /etc/network/interfaces

添加下列行:

gateway   192.168.0.1(指定网关--主机1的内网ip)

dns-nameservers 10.1.1.1(DNS和主机1的DNS是一样的)

2.重启网络sudo /etc/init.d/networking restart

然后看看现在是否已连网了呢(sudo apt-get update)

NFS:

在主机1上

sudo apt-get install nfs-server(安装所需的软件)

打开文件sudo vi /etc/exports

/home/aaa    *(rw,sync)

sudo showmount -e(可查看共享的文件夹)

在主机2上

sudo apt-get install nfs-common

sudo mkdir /home/bbb

sudo mount -t nfs 192.168.0.1:/home/aaa /home/bbb

然后cd /home/bbb

touch 123.txt

你可以从主机1上看到/home/aaa文件夹里多了个文件123.txt

到此结束。


添加一个Ubuntu的开机启动服务

先将脚本复制或者软连接到/etc/init.d/目录下,假设我在当前目录创建一个start-zk.sh的文件,用于开机自启动zookeeper。注意使用#!/bin/bash开头:


#!/bin/bash

some command


赋予文件start-zk.sh文件可执行权限

chomd +xstart-zk.sh

执行命令,将脚本添加到初始化执行的队列中去:


update-rc.d start-zk.sh d efaults


卸载启动脚本的方法

cd/etc/init.dsudoupdate-rc.d-fstart-zk.sh remove


update-rc.d 命令参考:http://blog.csdn.net/shb_derek1/article/details/8489112

查看本机公网IP

wget -qO- ifconfig.me/ip

curl ifconfig.me

你可能感兴趣的:(linux设置为局域网主机)