OpenVZ服務器vps配置IP地址
對于購買的服務器,安裝openvz,開了很多vps,ip地址明顯不夠用,如何給服務器配置ip地址?這里我們可以使用NAT來解決這個問題。宇塵網(wǎng)絡幫助中心域名知識|虛擬主機知識|VPS主機知識|服務器知識|網(wǎng)站建設知識|網(wǎng)絡推廣
在配置OpenVZ時需要打開核心的路由轉換支持,并且通常設置Hardware Node和VPS使用相同網(wǎng)段的地址,以便外面的機器可以直接訪問到VPS上。但在某些情況下,例如托管服務器中,通常只提供一個互聯(lián)網(wǎng)IP地址,再購買一個IP地址是比較貴的。這時,我們可以把VPS設置為內(nèi)網(wǎng)地址,然后通過iptables的NAT轉換,讓VPS與外界可以互相聯(lián)通。
一、網(wǎng)絡架構
當前IP配置是:
引用
HW:121.12.172.184/255.255.255.0
VPS:192.168.100.112/24
這樣,VPS處在HW里面,使用私有網(wǎng)段地址,HW相當于網(wǎng)關的作用。
首先,需確認HW上已經(jīng)打開路由轉發(fā),并關閉防火墻:
引用
# cat /proc/sys/net/ipv4/ip_forward
1
# service iptables stop
如果沒有的話,請打開/etc/sysctl.conf的支持,并使用sysctl -p生效:
引用
net.ipv4.ip_forward = 1
※ 初次使用,請務必關閉防火墻設定,否則,可能會帶來很多意想不到的事情。
然后,確認HW和VPS之間可以互通:
引用
# ping 192.168.100.112 -c 1
PING 192.168.100.112 (192.168.100.112) 56(84) bytes of data.
64 bytes from 192.168.100.112: icmp_seq=1 ttl=64 time=0.044 ms
— 192.168.100.112 ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.044/0.044/0.044/0.000 ms
# vzctl exec 112 ping 121.12.172.184 -c 1
PING 121.12.172.184 (121.12.172.184) 56(84) bytes of data.
64 bytes from 121.12.172.184: icmp_seq=1 ttl=64 time=0.046 ms
仿牌空間、香港月付空間、韓國月付空間、日本月付空間、荷蘭VPS、香港VPS
— 121.12.172.184 ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.046/0.046/0.046/0.000 ms
二、查看VPS狀態(tài)
以我使用的模板centos-5-x86_64-default-5.2-20081210.tar.gz為例,VPS中的網(wǎng)絡狀態(tài):
引用
# vzctl enter 112
entered into CT 112
# ifconfig venet0:0
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.100.112 P-t-P:192.168.100.112 Bcast:192.168.100.112 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
美國月付空間、月付美國空間、美國VPS、美國服務器租用
[root@112 /]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.0.2.0 * 255.255.255.0 U 0 0 0 venet0
169.254.0.0 * 255.255.0.0 U 0 0 0 venet0
default 192.0.2.1 0.0.0.0 UG 0 0 0 venet0
# cat /etc/sysconfig/network
NETWORKING=”yes”
GATEWAY=”192.0.2.1″
HOSTNAME=”112.linuxfly.org”
[root@112 /]# ping 192.0.2.1
connect: Invalid argument
可見,VPS通過venet0與HW互相訪問。但網(wǎng)關192.0.2.1是一個虛擬出來的IP地址,VPS在啟動時自動設定該值,不能直接修改。(若使用route add/del命令修改VPS的默認網(wǎng)關,VPS和HW將中斷網(wǎng)絡連接)
三、使用HW iptables的NAT轉發(fā)
在HW上執(zhí)行(121.12.172.184為HW上eth0的對外IP地址):
# iptables -F -t nat
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to 121.12.172.184
若HW使用浮動IP地址,請使用:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
然后設定VPS的DNS地址:
引用
# vzctl set 112 –nameserver 202.96.128.86 –save
File resolv.conf was modified
Saved parameters for CT 112
測試VPS能否出去:
引用
# vzctl exec 112 ping www.163.com -c 1
PING www.cache.idns.yeah.net (220.181.28.50) 56(84) bytes of data.
64 bytes from 220.181.28.50: icmp_seq=1 ttl=55 time=42.7 ms
— www.cache.idns.yeah.net ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 42.757/42.757/42.757/0.000 ms
這時,VPS處在HW的后面,若需要從互聯(lián)網(wǎng)訪問VPS,則還需要根據(jù)應用轉發(fā)端口。例如22服務,在HW上設置:
# iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp –dport 8022 -j DNAT –to-destination 192.168.100.112:22
同樣的道理,想利用VPS提供http服務的話,可以在HW上設置iptables或squid反向代理實現(xiàn)轉發(fā)。
四、NAT inside VE
實際上這不屬于本次內(nèi)容的話題,但由于概念有點相似,覺得有必要說說。
NAT inside VE,也就是在VPS中使用iptables的NAT功能。VPS作為一個相對獨立的虛擬系統(tǒng)環(huán)境,是支持iptables防火墻設置的。但VPS可使用的iptables模塊受限與HW環(huán)境,并由/etc/vz/vz.conf決定:
引用
## IPv4 iptables kernel modules
IPTABLES=”ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length iptable_nat ip_nat_ftp”
其中,默認沒有加入iptable_nat模塊的。添加后,即可在VPS中使用了。
更多技術知識,更多網(wǎng)絡服務,盡在宇塵網(wǎng)絡。我們的成長,離不開你們的支持,宇塵網(wǎng)絡,歡迎您的訪問。