生信喵 发表于 2024-4-6 17:11:11

计算集群使用squid代理访问外网

# 背景

最近使用集群提交作业,任务中需要在计算节点上下载文件,始终下载不下来。

在管理节点上,ping百度有网络,而切去fat节点没有网络。

检查服务器硬件环境,发现只有管理节点连入了外网,其余计算节点都是没有外网的。

不过节点间使用局域网通讯,则可以使用代理使得计算节点也可以上网。

# 原因

计算集群一般出于安全考虑, 在同一局域网中只有一台机器(比如主节点)可以访问外网。但有时需要在机器上安装一些软件及命令,其他的机器需要访问外网来简化工作, 但此时又不能打乱原有运维的设置,所以需要在能访问外网的机器上做个代理。此篇以CentOS系统下squid为例进行介绍。

# 解决方案

=== 步骤大体如下(可联通外网的机器上|root或者sudo权限): ===

## 1 可以上外网的机器(mu01 || 172.16.11.254)上,yum安装squid代理

```
yum install squid
```

## 2 安装完成后修改conf

安装完成后, cd/etc/squid/ 目下,

修改squid.conf 文件中的内容,修改之前, 可以先备份该文件(cp squid.conf squid.conf.bak)

修改其中的 http_access deny all 为 http_access allow all

## 3 quid服务开启,依次执行

```
squid -k parse
squid -z
service squid start
netstat -nltp
```

## 4 测试fat节点

```
   export http_proxy=http://172.16.11.254:3128
   curl www.baidu.com (或者wget到有内容的index.html测试)
```

## 5 修改相关的软件配置

### 5.1 yum

```
vi /etc/yum.cnf加入以下内容:
proxy=http://172.16.11.254:3128
```

### 5.2 wget

```
vi /etc/wgetrc加入以下内容:
https_proxy=https://172.16.11.254:3128
http_proxy=http://172.16.11.254:3128
ftp_proxy=http://172.16.11.254:3128
```

### 5.3 sratoolkit

sratoolkit支持通过配置文件来设置代理。这个配置文件一般位于$HOME/.ncbi/user-settings.mkfg,你可以检查或者修改这个文件以包含代理设置:

```
/http/proxy/enabled = "true"
/http/proxy/path = "http://172.16.11.254:3128"
/https/proxy/enabled = "true"
/https/proxy/path = "https://172.16.11.254:3128"
```

因为家目录下一般节点间共享。

修改后,bsub提交任务给fat节点,就可以发现sratoolkit的prefetch可以正常下载sra文件了。

# 后记

集群间,除了独有文件目录和共享文件目录,网络也是需要考虑的部分。
页: [1]
查看完整版本: 计算集群使用squid代理访问外网