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