
如上图,我客户机房内网区域隔离了外网,服务器ip192.168.10.10,外网区域一台服务器能上互联网172.168.60.10。公司互联网上有一个服务系统,其IP:202.58.10.10:8080.那么机房内网区域的那台服务器想要只访问互联网上的202.58.10.10:8080端口服务,该如何实现?
我了解过通过nginx实现,那么需要在哪台服务器上搭建nginx服务。 然后还需要在另外一台服务器上做什么配置?

晚上好🌙🌙🌙
本答案参考通义千问
要实现内网服务器通过外网服务器访问互联网上的某个IP+端口(如 202.58.10.10:8080),可以使用 Nginx 作为反向代理 来实现。以下是详细的解决方案和配置步骤。
192.168.10.10172.168.60.10202.58.10.10:8080目标是让内网服务器通过外网服务器,访问 202.58.10.10:8080 的服务。
202.58.10.10:8080。http://172.168.60.10:8080)来间接访问目标服务。sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
编辑 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/default
在文件中添加如下内容(或修改现有配置):
server {
listen 8080;
server_name your_domain_or_ip; # 如果没有域名,可以写为 172.168.60.10
location / {
proxy_pass http://202.58.10.10:8080;
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;
}
}
注意:
listen 8080;是你希望外网服务器监听的端口,内网服务器将通过该端口访问。
sudo nginx -t # 测试配置是否正确
sudo systemctl restart nginx
现在,内网服务器可以通过访问以下地址来访问外部服务:
http://172.168.60.10:8080
这相当于通过外网服务器代理访问了 202.58.10.10:8080。
限制访问来源:可以在 Nginx 配置中添加 allow 和 deny 指令,限制只有特定 IP 可以访问。
location / {
allow 192.168.10.0/24; # 允许内网 IP 段访问
deny all;
proxy_pass http://202.58.10.10:8080;
...
}
启用 HTTPS:如果需要安全传输,可以配置 SSL 证书。
| 步骤 | 操作 |
|------|------|
| 1 | 在外网服务器(172.168.60.10)上安装 Nginx |
| 2 | 配置 Nginx 反向代理到 202.58.10.10:8080 |
| 3 | 重启 Nginx 使配置生效 |
| 4 | 内网服务器通过访问 http://172.168.60.10:8080 访问目标服务 |
server {
listen 8080;
server_name 172.168.60.10;
location / {
proxy_pass http://202.58.10.10:8080;
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;
}
}
如有更多需求(如负载均衡、SSL、限流等),也可以进一步扩展 Nginx 配置。