阿里云服务器作为跳板链接内网服务器

阿里云服务器作为跳板链接内网服务器

jjw
jjw
2024-12-17 / 0 评论 / 9 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年12月17日,已超过176天没有更新,若内容或图片失效,请留言反馈。

问题

我有2台服务器:阿里服务器A的zerotier IP= ip1 、本地服务器主机B的zerotier IP=ip2 、阿里云服务器的公网IP=ip3。我需要在第三台电脑C输入公网IP=ip3:7861/,然后可以看到我在本地服务器B的7860端口的服务,如何实现?

答案

想要通过阿里云服务器A作为跳板,让第三台电脑C通过访问阿里云的公网IP来访问本地服务器B的7860端口服务。这需要在阿里云服务器A上配置端口转发。以下是具体步骤:

  1. 在阿里云服务器A上配置Nginx反向代理:
# 安装Nginx
sudo apt update
sudo apt install nginx

# 编辑Nginx配置文件
sudo nano /etc/nginx/sites-available/default

# 添加以下配置
server {
    listen 7861;
    server_name _;

    location / {
        proxy_pass http://ip2:7860;
        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;
    }
}

# 测试配置文件是否正确
sudo nginx -t

# 重启Nginx
sudo systemctl restart nginx
  1. 确保阿里云服务器A的安全组放行7861端口
  2. 确保本地服务器B的7860端口服务正常运行
  3. 确保两台服务器的Zerotier连接正常

完成以上配置后,第三台电脑C就可以通过访问 http://ip1:7861 来访问本地服务器B的7860端口服务了。

需要注意的几点:

  1. 确保本地服务器B的7860端口服务允许来自ip1的访问
  2. 如果有防火墙,需要确保相关端口都已开放
  3. 可以通过以下命令测试连接:
# 在阿里云服务器A上测试到本地服务器B的连通性
curl http://ip2:7860

阿里云服务器nginx配置

# 保留原有的80端口默认配置
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        server_name _;

        location / {
                try_files $uri $uri/ =404;
        }
}

# 添加新的7861端口转发配置
server {
        listen 7861;
        server_name _;

        location / {
                proxy_pass http://ip2:7860;
                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;
                
                # WebSocket支持
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }
}

修改步骤:

  1. 打开配置文件:
sudo nano /etc/nginx/sites-available/default
  1. 将上述配置复制粘贴到文件中
  2. 保存文件(在nano编辑器中按Ctrl+X,然后按Y确认保存)
  3. 测试配置是否正确:
sudo nginx -t
  1. 如果测试通过,重启Nginx:
sudo systemctl restart nginx

这样配置后,原有的80端口服务不会受影响,同时7861端口会转发到本地服务器的7860端

效果

m4sct57f.png

1

评论

博主关闭了所有页面的评论
0:00