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