1
pfitseng 2014-09-10 13:17:50 +08:00
我觉得是可以得,不过还需要专zhe业teng人士解答
|
3
Honwhy 2014-09-10 13:28:58 +08:00
IPv6到IPv6|IPv4转换网关(nginx),网关到IPv4网站,
整体来看,你的网关需要双栈。 还需要将v6请求改成v4请求,比如proxy_pass。 只能说这么多了。 |
4
ysjdx 2014-09-10 13:37:24 +08:00
你的服务器开v4,v6双栈
然后做个代理不可以么? 做反代你要么得自己建dns,要不得改hosts。反代方法就是楼上说的 proxy_pass |
5
Suclogger OP @Honwhy 多谢指点。我的Nginx配置文件是这样写的:
server { listen 80; #charset koi8-r; location / { proxy_pass http://bt.neu6.edu.cn/; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 访问会报404错误 |
8
mengskysama 2014-09-10 14:36:24 +08:00
我似乎看到了六维空间
|
9
Showfom 2014-09-10 14:38:23 +08:00
|
10
mengskysama 2014-09-10 14:40:00 +08:00
@Suclogger 确定下NGINX有是否需要编译IPV6支持
|
11
rrfeng 2014-09-10 14:41:07 +08:00 1
你需要的是正向代理啊……
|
12
ctexlive 2014-09-10 15:45:22 +08:00 1
你是在学校的电脑服务器,校外电脑通过该服务器访问六维?
这个应该用正向代理吧. squid3就支持ipv6. 代理用squid3即可. |
16
Suclogger OP 感谢@rrfeng @ctexlive
贴一下正向代理的配置: Nginx.conf server { resolver 8.8.8.8; resolver_timeout 5s; listen 0.0.0.0:8080; location / { proxy_pass $scheme://$host$request_uri; proxy_set_header Host $http_host; proxy_buffers 256 4k; proxy_max_temp_file_size 0; proxy_connect_timeout 30; proxy_cache_valid 200 302 10m; proxy_cache_valid 301 1h; proxy_cache_valid any 1m; } } |
17
ctexlive 2014-09-10 21:56:11 +08:00
其实正向代理,不如用squid3了. 各种权限控制,和高性能. 要求不高,用nginx也行
|
18
photon006 2023-11-20 10:02:17 +08:00
还有一种方案,用 cloudflare worker 反代
1 、创建一个 worker ,把域名改成自己的 2 、添加一条路由 3 、设置 subdomain.example.com 域名代理 https://imgur.com/a/WisnzQP 访问 https://subdomain.example.com 就会经过 worker 处理,worker 反代去 https://ipv6.example.com:8443 拉取数据,ipv6.example.com 就是只有 ipv6 网络的服务。 |
19
photon006 2023-11-20 10:09:42 +08:00
这样还有个好处,家宽没公网 ipv4 又想映射服务出去就只能考虑 ipv6 + 非标端口 443 ,比如 8443 、2053 、2083 ,访问时就得带上端口号,worker 反代正好隐藏端口号,还能提升安全性。
|
20
photon006 2023-11-21 09:45:24 +08:00
上面代码有问题,要改成这样才能支持 websocket 反代:
addEventListener( "fetch", event => { const url = new URL(event.request.url); url.protocol = "https"; url.hostname = "ipv6.example.com"; url.port = '8443'; const request = new Request(url, event.request); event.respondWith(fetch(request)); } ) |
21
photon006 2023-11-21 09:48:17 +08:00
大陆无法访问 chatgpt 接口,同理反代 openai 可以这样:
addEventListener( "fetch", event => { const url = new URL(event.request.url); url.protocol = "https"; url.hostname = "api.openai.com"; url.port = '443'; const request = new Request(url, event.request); event.respondWith(fetch(request)); } ) |