閱讀43 返回首頁    go 阿裏雲 go 技術社區[雲棲]


squid正向代理__ECS設置_操作指南_高性能計算-阿裏雲

阿裏雲HPC物理機本身不能訪問外網,隻能通過ECS正向代理訪問。

本文檔將指導用戶如何設置代理服務器。

1. 確定IP地址

用戶應首先確認這幾個IP地址:

ECS外網IP(不便於透露,本文用XXX.XXX.XXX.XXX表示)和內網IP(實驗用10.10.10.10)

HPC物理機內網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命令登錄HPC物理機:

ssh -l root 10.239.23.4(HPC物理機內網IP)

3. ECS跳板機上部署代理服務器squid

這裏選擇squid,因為它不僅支持訪問HTTP的服務還支持訪問HTTPS的服務。

3.1 安裝squid

重新開一個終端,登錄到ECS跳板機。

直接用yum安裝:

yum install squid

默認情況下安裝位置在 /usr/sbin/squid

3.2 編輯squid配置文件

用root權限打開 /etc/squid/squid.conf 文件,首先把不需要的內網地址全部注釋上,在上麵增加一行,添加自己的HPC物理機IP地址,然後把不需要開放的端口注釋上,隻留下80和443端口,然後增加一行:access_log /var/log/squid/access.log用來記錄訪問情況。

修改後如下:

......

acl localnet src 10.239.23.4     # 這裏增加一行,添加自己的HPC物理機IP地址
#acl localnet src 10.0.0.0/8     # RFC1918 possible internal network,注釋上
#acl localnet src 172.16.0.0/12  # RFC1918 possible internal network,注釋上
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network,注釋上
#acl localnet src fc00::/7       # RFC 4193 local private network range,注釋上
#acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines,注釋上

acl SSL_ports port 443
acl Safe_ports port 80           # http服務端口打開
#acl Safe_ports port 21          # ftp可以根據情況是否打開
acl Safe_ports port 443          # https服務端口打開
#acl Safe_ports port 70          # gopher,注釋上
#acl Safe_ports port 210         # wais,注釋上
#acl Safe_ports port 1025-65535  # unregistered ports,注釋上
#acl Safe_ports port 280         # http-mgmt,注釋上
#acl Safe_ports port 488         # gss-http,注釋上
#acl Safe_ports port 591         # filemaker,注釋上
#acl Safe_ports port 777         # multiling http,注釋上
acl CONNECT method CONNECT

......

# And finally deny all other access to this proxy
http_access deny all                            # 除上麵允許的外,其他一律禁止訪問

# Squid normally listens to port 3128
http_port 3128                                  # squid默認監聽端口號,可以修改成別的端口號

# Added
access_log /var/log/squid/access.log            # 這裏增加一行,用於監控訪問記錄

保存該文件。

3.3 啟動squid

用root權限運行:sudo service squid start

查看squid運行狀態:

sudo service squid status
squid (pid 31659) is running...

3.4 設置ECS防火牆

出於節省流量和安全考慮,需要在ECS上設置防火牆規則,將除了HPC物理機之外的所有訪問3128端口的請求都擋在防火牆外。

步驟如下:

3.4.1 開啟防火牆

CentOS 6: service iptables start
CentOS 7: systemctl start firewalld

3.4.2 添加防火牆規則

首先允許HPC物理機IP地址(本文用10.239.23.4,請根據實際情況修改)訪問3128端口:

iptables -I INPUT -s 10.239.23.4  -p TCP --dport 3128 -j ACCEPT

端口3128要和3.2節squid配置文件中的端口設置相同。

然後禁止所有訪問3128端口的tcp連接:

iptables -A INPUT -p TCP --dport 3128 -j DROP

然後保存iptables設置:

service iptables save

查看規則是否生效:

iptables -L -n

可以看到新增了兩條規則:

target     prot opt source               destination
ACCEPT     tcp  --  10.239.23.4          0.0.0.0/0           tcp dpt:3128
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3128

4. 在HPC物理機上設置代理

回到HPC物理機終端,進行代理設置。

最簡單的方式是使用環境變量,假設ECS內網IP為10.10.10.10(用戶需要自行替換為真實ECS內網IP),則可以執行:

export http_proxy=https://10.10.10.10:3128

export https_proxy=https://10.10.10.10:3128

注意: 這裏的代理服務器端口設置應該和ECS跳板機上squid.conf中監聽端口一致,另外必須是ECS內網地址。

也可以將上述語句放入/etc/profile或~/.bashrc實現登錄HPC物理機時自動配置代理服務器。

5. 測試

在HPC物理機上使用wget、git clone和yum install測試結果如下:

5.1 測試http的訪問

wget https://www.cmake.org/files/v3.3/cmake-3.3.1.tar.gz
--2015-09-29 18:12:52--  https://www.cmake.org/files/v3.3/cmake-3.3.1.tar.gz
Connecting to 120.26.218.226:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 6577869 (6.3M) [application/x-gzip]
Saving to: ‘cmake-3.3.1.tar.gz’

100%[========================================================================================================================================>] 6,577,869   28.7KB/s   in 3m 55s

2015-09-29 18:16:47 (27.4 KB/s) - ‘cmake-3.3.1.tar.gz’ saved [6577869/6577869]

可以查看/var/log/squid/access.log文件,找到上述下載的log:

1443530801.311   7144 10.239.23.4 TCP_MISS/200 132972 GET https://www.cmake.org/files/v3.3/cmake-3.3.1.tar.gz - DIRECT/66.194.253.19 application/x-gzip

5.2 測試https的訪問

wget https://codeload.github.com/gflags/gflags/tar.gz/v2.1.2
--2015-09-29 18:18:13--  https://codeload.github.com/gflags/gflags/tar.gz/v2.1.2
Connecting to 120.26.218.226:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 95716 (93K) [application/x-gzip]
Saving to: ‘v2.1.2’

100%[========================================================================================================================================>] 95,716      78.7KB/s   in 1.2s

2015-09-29 18:18:17 (78.7 KB/s) - ‘v2.1.2’ saved [95716/95716]

可以查看/var/log/squid/access.log文件,找到上述下載的log:

1443531073.042  11238 10.239.23.4 TCP_MISS/200 101394 CONNECT codeload.github.com:443 - DIRECT/192.30.252.145 -

5.3 測試git clone

git clone https://github.com/gflags/gflags.git
Cloning into 'gflags'...
remote: Counting objects: 1772, done.
remote: Total 1772 (delta 0), reused 0 (delta 0), pack-reused 1772
Receiving objects: 100% (1772/1772), 1.27 MiB | 493.00 KiB/s, done.
Resolving deltas: 100% (1013/1013), done.

可以查看/var/log/squid/access.log文件,找到上述下載的log:

1443531119.620  29512 10.239.23.4 TCP_MISS/200 1356342 CONNECT github.com:443 - DIRECT/192.30.252.129 -

5.4 測試yum

# yum install openssl
Loaded plugins: fastestmirror, langpacks
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.9 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================================================
 Package                                 Arch                                   Version                                             Repository                               Size
==================================================================================================================================================================================
Installing:
 openssl                                 x86_64                                 1:1.0.1e-42.el7.9                                   updates                                 711 k

Transaction Summary
==================================================================================================================================================================================
Install  1 Package

Total download size: 711 k
Installed size: 1.5 M
Is this ok [y/d/N]: y
Downloading packages:
openssl-1.0.1e-42.el7.9.x86_64.rpm                                                                                                                         | 711 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
authconfig-6.2.8-9.el7.x86_64 has missing requires of /usr/bin/openssl
  Installing : 1:openssl-1.0.1e-42.el7.9.x86_64                                                                                                                               1/1
  Verifying  : 1:openssl-1.0.1e-42.el7.9.x86_64                                                                                                                               1/1

Installed:
  openssl.x86_64 1:1.0.1e-42.el7.9

Complete!

可以查看/var/log/squid/access.log文件,找到上述yum安裝的log:

1443522032.861    129 10.239.23.4 TCP_MISS/200 728129 GET https://mirrors.aliyuncs.com/centos/7/updates/x86_64/Packages/openssl-1.0.1e-42.el7.9.x86_64.rpm - DIRECT/10.143.34.200 application/x-redhat-package-manager

通過以上測試,驗證了HPC物理機已經可以通過ECS正向代理訪問外網。

最後更新:2016-11-23 16:03:51

  上一篇:go 安全組設置__ECS設置_操作指南_高性能計算-阿裏雲
  下一篇:go 正向代理__ECS設置_操作指南_高性能計算-阿裏雲