1魏滚、激活IP轉發(fā)
為了設置網(wǎng)絡共享镀首,你需要在linux主機上更改一個內(nèi)核參數(shù)來使能IP轉發(fā)功能。內(nèi)核啟動參數(shù)設定在/etc/sysctl.conf文件中鼠次。
打開這個文件更哄,定位到含有"# net.ipv4.ip_forward = 0"的這一行,移除#號(即取消注釋)腥寇,然后將其值設置為1成翩,改好之后應該和下面的一致。
1.net.ipv4.ip_forward = 1
你還要使激活IP轉發(fā)功能生效赦役,通過執(zhí)行下面的命令:
$ sudo sysctl -w net.ipv4.ip_forward=1
$ sudo sysctl -p
2麻敌、NAT配置
另一個網(wǎng)絡共享的重要部分是NAT配置,這可以通過使用iptables的命令掂摔,iptables包含四個防火墻的規(guī)則表:
·FILTER (默認表格)
·NAT
·MANGLE
·RAW
這個教程中我們將僅使用兩個表格:FILTER和NAT表格术羔。
首先,刷新所有活躍的防火墻的規(guī)則乙漓。
$ sudo iptables -X
$ sudo iptables -F
$ sudo iptables -t nat -X
$ sudo iptables -t nat -F
在輸入表格中级历,你需要設置轉發(fā)鏈(FORWARD)成可接受的(ACCEPT)目的地,因此所有通過主機的數(shù)據(jù)包將會被正確的處理簇秒。
$ 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口協(xié)議是wlx085700c5b983趋观。為了在wlx085700c5b983接口上使能IP偽造技術扛禽,我們使用以下的命令(wlx085700c5b983為可聯(lián)網(wǎng)網(wǎng)卡名字):
$ sudo iptables -t nat -I POSTROUTING -o wlx085700c5b983 -j MASQUERADE
3、配置私有IP地址
在linux主機上的所有配置完成后皱坛,你需要配置其他設備(linux/windows的PC或筆記本)的DNS服務器以及默認網(wǎng)關编曼,讓它們的數(shù)據(jù) 流可以指向linux主機。注意你不需要在linux主機上設置一個DNS服務器剩辟,從其他設備發(fā)出的每一個DNS請求都會通過上游的ISP自動轉發(fā)到linux主機上掐场。
如果你的其他設備上用的系統(tǒng)是linux往扔,你可以通過以下命令來更改他們的默認網(wǎng)關和DNS服務器。假設你的網(wǎng)段是192.168.1.0/24的私有IP地址網(wǎng)段熊户,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設備蝗罗,你可以通過控制面板的網(wǎng)絡連接屬性來更改默認網(wǎng)關和DNS服務器。
4蝌戒、完整的腳本
這是一個在linux主機上設置網(wǎng)絡連接共享的一個完整的腳本串塑。WAN口(ppp0協(xié)議)需要根據(jù)你具體的網(wǎng)絡接口協(xié)議來替換。
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北苟,然后添加可執(zhí)行權限通過執(zhí)行下面的命令桩匪。wlx085700c5b983為可聯(lián)網(wǎng)網(wǎng)卡名字
1.$ sudo chmod +x /usr/local/bin/netshare
如果你需要這個腳本開機啟動,你需要在/etc/rc.local文件中執(zhí)行這個腳本友鼻,并在該文件中的"exit 0"之前添加下面一行傻昙。
1./usr/local/bin/netshare
主機1設置完畢。
內(nèi)網(wǎng)主機設置及主機2
1.打開配置文件sudo vim /etc/network/interfaces
添加下列行:
gateway ? 192.168.0.1(指定網(wǎng)關--主機1的內(nèi)網(wǎng)ip)
dns-nameservers 10.1.1.1(DNS和主機1的DNS是一樣的)
2.重啟網(wǎng)絡sudo /etc/init.d/networking restart
然后看看現(xiàn)在是否已連網(wǎng)了呢(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/目錄下屋匕,假設我在當前目錄創(chuàng)建一個start-zk.sh的文件,用于開機自啟動zookeeper借杰。注意使用#!/bin/bash開頭:
#!/bin/bash
some command
賦予文件start-zk.sh文件可執(zhí)行權限
chomd +xstart-zk.sh
執(zhí)行命令,將腳本添加到初始化執(zhí)行的隊列中去:
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