作者:陌溪
陌溪的學習筆記:note.moguit.cn
大家好,我是 陌溪 。
上篇文章我們講到,我是如何利用小主機搭建了 PVE 虛擬系統(tǒng),并安裝 CentOS 鏡像,搭建自己的專屬服務器,在里面部署 蘑菇博客 ,支持在本地局域網(wǎng)進行訪問。
文章發(fā)布后,也受到了官方的推薦,不少小伙伴紛紛評論留言,想了解如何被外網(wǎng)訪問到,本篇文章將會介紹幾種被外網(wǎng)訪問的方式:
linux 雙網(wǎng)卡: 網(wǎng)卡A(ens3)和網(wǎng)卡B(ens8)是雙網(wǎng)卡, 雙網(wǎng)段。
網(wǎng)卡A, 網(wǎng)段:192.168.31.0/24, ip: 192.168.31.131,
網(wǎng)卡B, 網(wǎng)段:10.11.0.0/24, ip: 10.11.0.1
將網(wǎng)絡請求經(jīng)過網(wǎng)卡A轉發(fā),轉發(fā)給網(wǎng)段10.11.0.0/24上的其它機器。
在運行時臨時開啟IP轉發(fā):
sysctl -w net.ipv4.ip_forward=1
若要永久生效,編輯 /etc/sysctl.conf 文件,在其中添加或取消注釋以下行:
net.ipv4.ip_forward = 1
然后執(zhí)行 sysctl -p 或重啟系統(tǒng)使更改生效。
# 1. 安裝 iptables
yum install iptables-services -y
# 2. 允許轉發(fā)
iptables -A FORWARD -i ens3 -o ens8 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ens8 -o ens3 -j ACCEPT
# 3. 增加MASQUERADE規(guī)則(NAT轉換)
# 如果需要從192.168.31.0/24出去的數(shù)據(jù)包源地址轉換成10.11.0.x地址的話
iptables -t nat -A POSTROUTING -o ens8 -j MASQUERADE
# 如果不需要NAT,則無需上述MASQUERADE規(guī)則
# 4. 保存路由規(guī)則
service iptables save
根據(jù)情況,可能需要確保正確設置了主機自身的路由,以便知道如何到達10.11.0.0/24網(wǎng)段。通常情況下,由于網(wǎng)卡B已經(jīng)連接到該網(wǎng)段,系統(tǒng)應該能自動學習到相關路由。如果沒有,則手動添加靜態(tài)路由:
route add -net 10.11.0.0 netmask 255.255.255.0 dev ens8
這條命令將確保所有目標地址屬于10.11.0.0/24的數(shù)據(jù)包通過ens8發(fā)送。
完成以上步驟后,來自192.168.31.0/24網(wǎng)段的網(wǎng)絡請求理論上就能夠被Linux系統(tǒng)正確轉發(fā)至10.11.0.0/24網(wǎng)段了。同時請確保防火墻或者安全策略沒有阻止必要的通信。對于生產(chǎn)環(huán)境,請根據(jù)實際情況調整iptables規(guī)則以滿足具體的安全需求。
客戶端機器是192.168.31.0/24網(wǎng)段。
如果客戶端是windows機器, 需要在cmd命令行設置永久靜態(tài)路由:
route -p add 10.11.0.0/24 192.168.31.1
如果是linux機器,且只在192.168.31.0/24網(wǎng)段, 需要執(zhí)行如下命令:
route add -net 10.11.0.0/24 gw 192.168.31.131