日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

局域网服务器访问外网方案(局域网外网如何访问)

發布時間:2023/12/25 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 局域网服务器访问外网方案(局域网外网如何访问) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在阿里云、騰訊云等云平臺購買多臺服務器時,出于成本考慮,不會為每一臺服務器配置公網 IP。這樣就帶來一個問題,沒有公網 IP 的服務器就無法訪問外網。本文介紹一種使未綁定公網 IP 的服務器訪問外網的可選方案,前提是購買的多臺服務器中至少有一臺綁定了公網 IP。

在此先介紹下基本原理和基本步驟,對網絡了解得比較多的朋友可能一看就知道怎么回事了。后面再詳細介紹下具體操作流程。

基本原理

使用綁定了公網 IP 的服務器作為代理進行網絡的轉發

基本步驟

假設有兩臺服務器:

  1. 服務器 master,綁定了公網 IP,可以訪問外網
  2. 服務器 worker1,未綁定公網 IP,不能訪問外網

操作步驟如下:

  1. 建立 worker1 到 master 的隧道
  2. 修改 worker1 的路由表,使用 master 作為路由
  3. 在 master 上,使用 iptables 對來源為 worker1 的請求做 SNAT 轉換

詳細介紹

本文以云平臺購買的兩個節點實例為例:

  • master 節點:內網 IP 192.168.0.197
  • worker 節點:內網 IP 192.168.0.196

其中 master 節點綁定了公網 IP,可以訪問外網,worker 節點沒有綁定公網 IP,不能訪問外網。

通過 ip route show 命令查看兩臺主機的路由表,都有一條記錄為:

default via 192.168.0.253 dev eth0

也就是說,這兩臺主機默認都以 192.168.0.253 作為路由轉發請求,因此我們可以大概猜測網絡拓撲如下:

當然真實的網絡拓撲會比較復雜,這里只針對購買的兩臺主機做一個簡化。

現在我們要做的是,worker1 節點通過 master 節點作為代理,獲得訪問外網的能力。

第一步:建立 master 節點到 worker1 節點的隧道

因為兩臺機器在一個內網中,本身是可以互通的,因此我們可以通過默認網卡在兩臺主機間建立隧道。

在master 節點執行如下命令

# 創建一個 IPIP 類型的虛擬網卡
# ip tun add [虛擬網卡名稱] mode ipip remote [對端 IP 地址] local [本機 IP 地址]
ip tunnel add worker1_tunl mode ipip remote 192.168.0.196 local 192.168.0.197
# 啟動剛剛創建的虛擬網卡
ip link set worker1_tunl up
# 為創建的虛擬網卡綁定 IP 地址
# ip add add [本機要綁定的 IP] peer [對端要綁定的 IP 地址] dev [本機要綁定 IP 的虛擬網卡名稱]
ip add add 192.168.3.100 peer 192.168.3.101 dev worker1_tunl

這樣執行 ip addr show 命令可以看到多了如下一個網卡:

可以看到該網卡綁定了 IP:192.168.3.100

同樣的,在 worker1 節點執行如下命令

ip tunnel add master_tunl mode ipip remote 192.168.0.197 local 192.168.0.196
ip link set master_tunl up
ip add add 192.168.3.101 peer 192.168.3.100 dev master_tunl

執行 ip addr show 命令看到 worker1 節點多了如下網卡:

可以看到該網卡綁定了 IP:192.168.3.101

現在我們驗證下隧道是否建立成功,在 master 節點執行 ping 192.168.3.101

同樣在 worker1 節點執行 ping 192.168.3.100

可以看到,兩臺主機已經可以通過設置的 IP 互相訪問了,這樣兩臺主機之間的隧道就建立成功了

第二步:在 worker1 節點修改路由表,讓 master 節點作為 worker1 節點默認路由的網關

我們可以先執行 ip route show 查看下當前的默認路由

該路由顯示 worker1 節點上的默認路由使用 192.168.0.253 作為默認網關

首先,執行 ip route del default 刪除默認網關

然后,執行 ip route add default via 192.168.3.100 dev master_tunl 設置使用 master 節點作為默認網關, 注意這里使用創建的 master_tunl 虛擬網卡作為網絡設備

第三步:在 master 節點通過 iptables 工具,對通過我們創建的隧道過來的請求進行 SNAT 轉換

因為從 worker1 過來的請求源地址為 192.168.3.101,是一個內網地址,如果不進行 nat 轉換的話,外網中的請求是無法到達 worker1 節點的

我們執行如下命令進行 nat 設置

# 我們設置的隧道網段為 192.168.3.0/24, 如下設置會把源地址在網段 192.168.3.0/24 的請求進源地址轉換,
# 源地址會被偽裝成出口網卡的 IP 地址
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o eth0 -j MASQUERADE

以上就是所有的步驟了,我們來驗證下

在 worker1 節點執行 ping baidu.com

可以看到 worker1 節點可以訪問外網了

問題

  1. 按上述步驟設置后仍然無法訪問外網?

檢查 master 節點是否開啟了路由轉發功能,該方案需要轉發節點開啟轉發功能

開啟方式:

  1. 需要修改 sysctl.conf 文件,配置 net.ipv4.ip_forward = 1
  2. 執行 sysctl -p 使之生效

總結

以上是生活随笔為你收集整理的局域网服务器访问外网方案(局域网外网如何访问)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。