生成私钥和证书

科学上网网格代理(Science Grid Proxy Configuration)是一种常见的网络配置方式,用于通过中间代理(如Web Proxy或FTP Proxy)访问互联网资源,以下是配置科学上网网格代理的完整教程,分为多个步骤,确保每一步都能顺利完成。


确定网络环境和工具

在开始配置之前,请确保以下条件:

  • 网络环境:了解您的网络架构(如内部网络、边界路由器、外部互联网)。
  • 代理服务器:选择合适的代理服务器(如Squid、Nginx、Apache Tomcat等)。
  • 证书:如果需要加密通信,可以配置SSL/TLS证书。
  • 域名:已注册并解析域名(如sciencegrid.example.com)。
  • 客户端:配置客户端(如浏览器或命令行工具)使用代理服务器。

安装和配置代理服务器

选择合适的代理服务器,并安装并配置它。

1 安装代理服务器

根据您的选择安装代理服务器:

  • Squid Proxy
    • 下载并安装Squid
    • 启动Squid服务:sudo /usr/sbin/squid3 -foreground -conf-file=/etc/squid/squid.conf
  • Nginx Proxy
  • Apache Tomcat Proxy
    • 启动Apache Tomcat:sudo systemctl start tomcat

2 配置代理服务器

根据代理服务器类型配置:

  • Squid Proxy

    • 打开/etc/squid/squid.conf,添加以下配置:
      httpoxy-on
      port 3128
      # 允许访问外部网站
      allowed_hosts .example.com
      # 配置DNS
      dns_nameservers 192.168.1.1 192.168.2.1
  • Nginx Proxy

    • 打开/etc/nginx/sites-enabled/default,添加以下配置:
      server {
          listen 80;
          server_name sciencegrid.example.com;
          proxy_pass http://backend.example.com:808;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
      }
  • Apache Tomcat Proxy

    • 配置Tomcat作为反向代理,访问外部网站:
      <Proxy "http://backend.example.com:808">
          ProxyPass /
          ProxyReverse
          AddProxyHeader On
      </Proxy>

配置路由器和IP转发

确保路由器正确配置,以允许内部网络通过代理访问外部互联网。

1 配置路由器IP转发

在边界路由器上,配置IP转发(NAT):

  • 在路由器的命令行界面,执行以下命令:
    ip route 0.../ 192.168.1.1

2 配置路由器DNS

确保路由器上正确的DNS服务器:

  • 设置路由器的DNS解析服务器:
    router> configure terminal
    router> ip dns-server 192.168.1.1
    router> end

配置科学上网网关

配置网关(如Squid或Nginx)以提供互联网访问权限。

1 配置DNS

在网关上,配置DNS解析:

  • 打开Squid的配置文件,添加DNS服务器:
    dns_nameservers 192.168.1.1 192.168.2.1

2 配置HTTP代理

配置网关以允许客户端访问外部网站:

  • Squid Proxy

    # 允许访问外部网站
    allowed_hosts .example.com
    # 配置访问外部网站的规则
    url_rewrite_url http://www.google.com
    url_rewrite_url http://www.example.com
  • Nginx Proxy

    server {
        listen 80;
        server_name sciencegrid.example.com;
        # 允许访问外部网站
        proxy_pass http://www.google.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

配置客户端浏览器

配置客户端(如Windows、Mac或Linux)使用网关作为代理。

1 Windows客户端

  • 在浏览器中,设置代理:
    • Internet Explorer:工具 > 选项 > 连接 > 设置代理服务器
    • Chrome:chrome://settings>高级设置>代理

2 Linux客户端

  • 使用命令行工具(如curl或wget)设置代理:
    export http_proxy=192.168.1.1:3128
    export https_proxy=192.168.1.1:3128

配置域名解析

确保科学上网网格的域名可以被正确解析。

1 使用云DNS

  • 注册域名(如sciencegrid.example.com),然后配置DNS记录:
    • A记录:sciencegrid.example.com. A 192.168.1.1
    • 或者使用云DNS(如AWS Route 53、Cloudflare等),配置解析。

2 本地DNS

  • 在内部网络中,可以手动配置DNS解析:
    echo "sciencegrid.example.com.  60 IN A 192.168.1.1" >> /etc/hosts

配置证书(可选)

如果需要加密通信,可以配置SSL/TLS证书。

1 生成自签名证书

使用OpenSSL生成自签名证书:


2 安装证书

将证书安装到网关上,确保客户端信任证书。


测试和验证

完成配置后,进行测试和验证。

1 测试代理

  • 使用curl或wget测试:
    curl -I http://www.google.com
  • 检查是否通过网关:
    curl -I http://sciencegrid.example.com

2 检查证书

  • 在浏览器中,检查证书是否被正确信任:
    • chrome://settings>高级设置>隐私和安全>管理证书

配置访问限制(可选)

根据需求,限制某些网站或资源的访问。

1 Squid Proxy

  • 配置访问控制:
    # 禁止访问某些网站
    deny_url_access all *
    allow_url_access http://www.example.com

2 Nginx Proxy

  • 使用nginx.conf限制访问:
    location / {
        proxy_pass http://backend.example.com:808;
        proxy_set_header X-Frame-Options "DENY";
    }

故障排除

  • 证书错误:确保证书已正确安装,并信任所有相关CA。
  • 代理错误:检查代理配置文件是否有语法错误。
  • 网络问题:确保路由器和防火墙配置正确。

生成私钥和证书

扫码添加老王VPN官方微信

扫码添加老王VPN官方微信

020-8756-3928
扫码添加老王VPN官方微信

扫码添加老王VPN官方微信

网站地图