关于一个端口 转发的疑问 - V2EX
请不要在回答技术问题时复制粘贴 AI 生成的内容
blacktail

关于一个端口 转发的疑问

  •  
  •   blacktail May 16, 2023 3046 views
    This topic created in 1115 days ago, the information mentioned may be changed or developed.

    我有一个游戏面板,分为前端和后端。 前端是一个 php 服务,由 nginx 代理,跑在 80 端口上。 后端是一个 websocket 服务,跑在 8080 端口上。 在前端上点击某个按钮进入游戏服务器控制面板会去连接后端的 websocket 。

    我把面板的 80 端口在路由器里用另一个端口转发出去了,大概是 http://xxxx.top:1234,但是外网访问时,每当进入游戏服务器控制面板就会报错。 报错 而在局域网访问时正常的。

    目前尝试过把 8080 也转发出去,然后在访问时候手动更改端口,大概是 http://xxxx.top:1235,然后就报错。 {"error":"The required authorization heads were not present in the request."}

    所以有啥好办法能转发这个 websocket 服务,让外网也能访问吗。

    16 replies    2023-05-16 18:53:19 +08:00
    guguji5
        1
    guguji5  
       May 16, 2023
    路由器 ?
    blacktail
        2
    blacktail  
    OP
       May 16, 2023
    @guguji5
    doraf
        3
    doraf  
       May 16, 2023
    这报错说请求中缺少 “authorization heads ”,正常情况下,这个“authorization heads ”哪里来的?
    blacktail
        4
    blacktail  
    OP
       May 16, 2023
    @doraf 应该来自于这里
    ![图片]( https://i.328888.xyz/2023/05/16/ViwzY8.png)
    doraf
        6
    doraf  
       May 16, 2023
    @blacktail “authorization heads ”是如何设置的,设置成功了么,如果成功了,使用的时候,ws://这个请求能正常获取之前设置的“authorization heads ”吗?一步步检查检查吧。
    blacktail
        7
    blacktail  
    OP
       May 16, 2023
    @doraf 这个面板不是我开发的。。。并不清楚这玩意如何设置的。
    chrawsl
        8
    chrawsl  
       May 16, 2023
    nginx 反代传递一下 header 试试

    proxy_set_header Authorization $authorization ;
    blacktail
        9
    blacktail  
    OP
       May 16, 2023
    @chrawsl 把 8080 反代到 80 ?
    chrawsl
        10
    chrawsl  
       May 16, 2023
    @blacktail 要不你贴一下整个配置文件?
    blacktail
        11
    blacktail  
    OP
       May 16, 2023
    chrawsl
        12
    chrawsl  
       May 16, 2023
    看着像在外网尝试连接了内网的 ws 地址,没想到什么好的解决方案
    blacktail
        13
    blacktail  
    OP
       May 16, 2023
    @chrawsl 。。。就是这样的,主贴里说了。问题就在于外网访问连不上内网的 websocket 。
    chrawsl
        14
    chrawsl  
       May 16, 2023
    要不就先映射一下 ws 端口,然后在前端判定一下当前域名,在内网就连内网地址,在外网就连外网地址,或者在 nginx 反代的做一下 replace ,直接全文替换连接的地址
    blacktail
        15
    blacktail  
    OP
       May 16, 2023
    @chrawsl
    1. 第一个办法。面板不是我开发的,做不了。。。
    2. 第二个办法?把 ws 的 8080 反代到 80 上?
    LinePro
        16
    LinePro  
       May 16, 2023
    解决方法应该是使用 nginx 反向代理内网 8080 端口上的 http / websocket 服务到外网没错。
    贴一下你反代 8080 的 nginx 配置文件,还有具体的报错响应,请求头、请求内容、响应头、响应内容与内网中的正常请求比较一下看有没有什么不一致的地方。另外再检查一下是不是有什么非 ws 的普通 HTTP 请求发生错误,比如跨域之类的问题。
    反正基本思路就是检查有什么不一样的请求和响应导致了错误。
    About     Help     Advertise     Blog     API     FAQ     Solana     5755 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 63ms UTC 02:27 PVG 10:27 LAX 19:27 JFK 22:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86