707
穀歌
正向代理__ECS設置_操作指南_高性能計算-阿裏雲
阿裏雲GPU物理機本身不能訪問外網,隻能通過ECS正向代理訪問。本文檔將指導用戶如何設置代理服務器。
1. 確定IP地址
用戶應首先確認這幾個IP地址: ECS外網IP(不便於透露,本文用XXX.XXX.XXX.XXX表示)和內網IP(實驗用10.10.10.10); GPU物理機內網IP(實驗用10.239.23.4);
2. 登錄ECS跳板機
用戶可以用PUTTY工具(Windows環境)或SSH命令(Linux環境)登錄ECS,注意應使用ECS外網IP登入。
ssh -l login_name XXX.XXX.XXX.XXX(ECS外網IP)
登錄成功後,可以在ECS跳板機上用SSH命令登錄GPU物理機:
ssh -l root 10.239.23.4(GPU物理機內網IP)
3. ECS跳板機上部署代理服務器
這裏選擇Tengine,它是在NGINX的基礎上由淘寶網發起的開源Web服務器項目。用戶應注意,NGINX做正向代理服務器是不支持HTTPS連接的,所以客戶端隻能訪問HTTP服務。如果用戶需要在物理機上訪問HTTPS服務可以選擇其他Web服務器做代理。
3.1 安裝Tengine
重新開一個終端,登錄到ECS跳板機。 獲取Tengine源碼:
wget https://tengine.taobao.org/download/tengine-2.1.1.tar.gz
解壓:
tar zxvf tengine-2.1.1.tar.gz
cd tengine-2.1.1/
配置和編譯:
./configure
make
sudo make install
默認情況下安裝位置在 /usr/local/nginx/
3.2 編輯Tengine配置文件
用root權限打開 /usr/local/nginx/conf/nginx.conf
文件,在http{}語句塊內增加如下內容:("//”後麵為注釋,真正的conf文件中應刪除)
server {
resolver 8.8.8.8;
// 設置DNS的IP,可以根據實際情況修改
resolver_timeout 5s;
// DNS連接超時設置
listen 0.0.0.0:8080;
// 用於連接客戶端的監聽端口,也可改為其他端口
access_log /root/logs/proxy.access.log;
// 連接日誌,用於記錄所有連接建立的情況
error_log /root/logs/proxy.error.log;
// 錯誤日誌,用於記錄所有錯誤情況
location / {
allow 10.239.23.4;
// 允許接入的物理機內網IP,根據需要設置
deny all;
// 拒絕為除了上一句指定物理機內網IP之外的所有主機服務
// 以下不需要用戶修改,保持默認即可
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
}
保存該文件。
3.3 啟動Tengine
用root權限運行:sudo /usr/local/nginx/sbin/nginx
如果報錯,請根據報錯信息對3.2節中的nginx.conf配置文件做必要的修改。
3.4 設置ECS防火牆
出於節省流量和安全考慮,需要在ECS上設置防火牆規則,將除了GPU物理機之外的所有訪問8080端口的請求都擋在防火牆外。步驟如下:
3.4.1 開啟防火牆
CentOS6: service iptables start
CentOS7: systemctl start firewalld
3.4.2 添加防火牆規則
首先允許GPU物理機IP地址(本文用10.239.23.4,請根據實際情況修改)訪問8080端口:
iptables -I INPUT -s 10.239.23.4 -p TCP --dport 8080 -j ACCEPT
端口8080要和3.2節Tengine配置文件中的端口設置相同。 然後禁止所有訪問8080端口的tcp連接:
iptables -A INPUT -p TCP --dport 8080 -j DROP
查看規則是否生效:
iptables -L -n
可以看到新增了兩條規則:
target prot opt source destination
ACCEPT tcp -- 10.239.23.4 0.0.0.0/0 tcp dpt:8080
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
4. 在GPU物理機上設置代理
回到GPU物理機終端,進行代理設置。 最簡單的方式是使用環境變量,假設ECS內網IP為10.10.10.10(用戶需要自行替換為真實ECS內網IP),則可以執行:
export http_proxy=https://10.10.10.10:8080
注意這裏的代理服務器端口設置應該和ECS跳板機上nginx.conf中監聽端口(listen 0.0.0.0:8080)相互對應。 也可以將上述語句放入/etc/profile或~/.bashrc實現登錄GPU物理機時自動配置代理服務器。
5. 測試
在GPU物理機上使用不同的工具測試外網連接情況,結果如下:
5.1 wget和curl測試
$ wget https://tengine.taobao.org/download/tengine-2.1.1.tar.gz
--2015-09-21 16:15:50-- https://tengine.taobao.org/download/tengine-2.1.1.tar.gz
Connecting to 10.10.10.10:8080... connected.
Proxy request sent, awaiting response... 200 OK
Length: 2062650 (2.0M) [application/octet-stream]
Saving to: ‘tengine-2.1.1.tar.gz’
100%[======================================>] 2,062,650 1014KB/s in 2.0s
2015-09-21 16:15:52 (1014 KB/s) - ‘tengine-2.1.1.tar.gz’ saved [2062650/2062650]
通過以上測試,驗證了GPU物理機已經可以通過ECS正向代理訪問外網。
5.2 測試yum
$ sudo yum install openssl
Loaded plugins: fastestmirror, langpacks
base | 3.6 kB 00:00
Loading mirror speeds from cached hostfile
* base: mirrors.aliyuncs.com
* extras: mirrors.aliyuncs.com
* updates: mirrors.aliyuncs.com
Resolving Dependencies
--> Running transaction check
---> Package openssl.x86_64 1:1.0.1e-42.el7 will be updated
---> Package openssl.x86_64 1:1.0.1e-42.el7.9 will be an update
--> Processing Dependency: openssl-libs(x86-64) = 1:1.0.1e-42.el7.9 for package: 1:openssl-1.0.1e-42.el7.9.x86_64
--> Running transaction check
---> Package openssl-libs.x86_64 1:1.0.1e-42.el7 will be updated
---> Package openssl-libs.x86_64 1:1.0.1e-42.el7.9 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
openssl x86_64 1:1.0.1e-42.el7.9 updates 711 k
Updating for dependencies:
openssl-libs x86_64 1:1.0.1e-42.el7.9 updates 949 k
Transaction Summary
================================================================================
Upgrade 1 Package (+1 Dependent package)
Total download size: 1.6 M
Is this ok [y/d/N]:y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/2): openssl-1.0.1e-42.el7.9.x86_64.rpm | 711 kB 00:00
(2/2): openssl-libs-1.0.1e-42.el7.9.x86_64.rpm | 949 kB 00:00
--------------------------------------------------------------------------------
Total 5.7 MB/s | 1.6 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : 1:openssl-libs-1.0.1e-42.el7.9.x86_64 1/4
Updating : 1:openssl-1.0.1e-42.el7.9.x86_64 2/4
Cleanup : 1:openssl-1.0.1e-42.el7.x86_64 3/4
Cleanup : 1:openssl-libs-1.0.1e-42.el7.x86_64 4/4
Verifying : 1:openssl-libs-1.0.1e-42.el7.9.x86_64 1/4
Verifying : 1:openssl-1.0.1e-42.el7.9.x86_64 2/4
Verifying : 1:openssl-1.0.1e-42.el7.x86_64 3/4
Verifying : 1:openssl-libs-1.0.1e-42.el7.x86_64 4/4
Updated:
openssl.x86_64 1:1.0.1e-42.el7.9
Dependency Updated:
openssl-libs.x86_64 1:1.0.1e-42.el7.9
Complete!
在ECS跳板機上查看Tengine access log文件(/root/logs/proxy.access.log),找到上述與yum安裝相關的log如圖所示。
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyuncs.com/centos/7/os/x86_64/Packages/libcom_err-devel-1.42.9-7.el7.x86_64.rpm HTTP/1.1" 502 690 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyuncs.com/centos/7/updates/x86_64/Packages/krb5-libs-1.12.2-15.el7_1.x86_64.rpm HTTP/1.1" 502 691 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyuncs.com/centos/7/updates/x86_64/Packages/krb5-devel-1.12.2-15.el7_1.x86_64.rpm HTTP/1.1" 502 692 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyuncs.com/centos/7/os/x86_64/Packages/keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm HTTP/1.1" 502 692 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyuncs.com/centos/7/os/x86_64/Packages/libselinux-devel-2.2.2-6.el7.x86_64.rpm HTTP/1.1" 200 178532 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyuncs.com/centos/7/os/x86_64/Packages/libsepol-devel-2.1.9-3.el7.x86_64.rpm HTTP/1.1" 200 72300 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyuncs.com/centos/7/os/x86_64/Packages/libverto-devel-0.2.5-4.el7.x86_64.rpm HTTP/1.1" 200 11776 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyuncs.com/centos/7/os/x86_64/Packages/pcre-devel-8.32-14.el7.x86_64.rpm HTTP/1.1" 200 488780 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyuncs.com/centos/7/os/x86_64/Packages/zlib-devel-1.2.7-13.el7.x86_64.rpm HTTP/1.1" 200 50592 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm HTTP/1.1" 200 38232 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:11 +0800] "GET https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/libcom_err-devel-1.42.9-7.el7.x86_64.rpm HTTP/1.1" 200 30804 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:12 +0800] "GET https://mirrors.aliyuncs.com/centos/7/updates/x86_64/Packages/openssl-devel-1.0.1e-42.el7.9.x86_64.rpm HTTP/1.1" 200 1235792 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:12 +0800] "GET https://mirrors.aliyun.com/centos/7/updates/x86_64/Packages/krb5-devel-1.12.2-15.el7_1.x86_64.rpm HTTP/1.1" 200 655972 "-" "urlgrabber/3.10 yum/3.4.3"
10.239.23.4 - - [21/Sep/2015:17:26:12 +0800] "GET https://mirrors.aliyun.com/centos/7/updates/x86_64/Packages/krb5-libs-1.12.2-15.el7_1.x86_64.rpm HTTP/1.1" 200 845708 "-" "urlgrabber/3.10 yum/3.4.3"
上述安裝包所在的yum源為阿裏雲內網,故ECS代理會通過內網流量獲取,這樣節省了用戶流量費用。
最後更新:2016-11-23 17:16:02
上一篇:
squid正向代理__ECS設置_操作指南_高性能計算-阿裏雲
下一篇:
反向代理__ECS設置_操作指南_高性能計算-阿裏雲
刪除加速域名__域名操作接口_API 手冊_CDN-阿裏雲
訂閱管理__使用說明_用戶手冊_雲服務總線 CSB-阿裏雲
如何訪問視頻培訓課程__視頻培訓課程_上雲培訓-阿裏雲
HSF 單元測試__服務開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
Check Point “飛天”阿裏雲 vSEC在雲棲大會閃亮登場
ActionTrail現在支持哪些產品?__常見問題_常見問題_操作審計-阿裏雲
彈性Web托管如何綁定域名__產品相關問題_使用問題_彈性 Web 托管-阿裏雲
ECS Windows係統抓包工具Wireshark的安裝使用__網絡連接問題_網絡問題_Windows操作運維問題_雲服務器 ECS-阿裏雲
釋放外網連接串__實例管理_API 參考_雲數據庫 RDS 版-阿裏雲
解析記錄衝突判斷規則__附錄_API文檔_雲解析-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲