Giter Site home page Giter Site logo

als's Issues

[BUG] 允许flood ping

BUG 简短描述
在fakeshell中允许floodping,这是极其危险的事情,应该让fakeshell处于non-root环境下运行

[BUG] SPONSOR_MESSAGE使用/tmp/als_readme.md报错

BUG
上传编辑好的als_readme.md到机器的tpm目录下。
然后执行docker启动docker run -dit -e SPONSOR_MESSAGE=/tmp/als_readme.md -v /tmp:/tmp -w /tmp --name looking-glass --restart always --network host wikihostinc/looking-glass-server
docker日志报错

PHP Warning:  rename(/GeoLite2-City.mmdb,/app/ip.mmdb): No such file or directory in /app/components/98-uncompress-ipdb.php on line 22
PHP Fatal error:  Uncaught InvalidArgumentException: The file "/app/ip.mmdb" does not exist or is not readable. in /app/components/98-uncompress-ipdb.php:23

环境

操作系统 & Docker 版本 (lsb_release -a && docker version):

使用的镜像版本 (docker ps | grep als):

现象

预期返回:

这样这样这样

实际返回:

那样那样那样

[BUG] 内网环境未能获取外网ip时,iPerf3不能显示端口

内网环境未能获取外网ip时,iPerf3不能显示端口

环境

操作系统 & Docker 版本 (lsb_release -a && docker version):

# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye
# docker version
Client: Docker Engine - Community
 Version:           23.0.3
 API version:       1.42
 Go version:        go1.19.7
 Git commit:        3e7cbfd
 Built:             Tue Apr  4 22:03:23 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          23.0.3
  API version:      1.42 (minimum version 1.12)
  Go version:       go1.19.7
  Git commit:       59118bf
  Built:            Tue Apr  4 22:03:23 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.20
  GitCommit:        2806fc1057397dbaeefbea0e4e17bddfbd388f38
 runc:
  Version:          1.1.5
  GitCommit:        v1.1.5-0-gf19387a
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

使用的镜像版本 (docker ps | grep als):

# docker ps | grep looking-glass
360d868fe3ec   wikihostinc/looking-glass-server:latest                   "/bin/sh -c 'php81 /…"   27 minutes ago   Up 27 minutes                                                                                                                                                                                                                                     looking-glass

Image details
ID | sha256:b92a7d3e41a9ba41b74d1dca7595d9304365494b5517a05f2a5f818d67b44421
Size | 81.4 MB
Created | 2023-03-30 16:42:17
Build | Docker on linux, amd64

现象

预期返回:
打开 iPerf3 页面,点击启动服务,显示随机端口
实际返回:
实际只输出一句 iPerf3 command: 未能显示打开的端口
Snipaste_2023-04-22_11-24-14

请教如何改端口?

看说明是HTTP_PORT,那应该怎么用呢?
比如,我想用8777端口,我之前docker换端口是用的 -p 8777:80
小白问题,请指教

[讨论]获取客户端真实 IP 地址的设计

看了下项目的实现过程,基本上是靠 Nginx 配置文件中的
proxy_set_header X-Real-IP $remote_addr;
来获取 IP 地址,这样做的弊端是,ALS 服务处于多级反向代理时,拿到的 IP 地址并不是客户真实的 IP 地址,而是上游服务的 IP 地址

项目中的 Nginx 配置文件也包含有这样的语句:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

在多级代理中,使用X-Forwarded-For来获取客户真实的 IP 地址是很方便的事情

  • 如果 ALS 服务没有使用方向代理,那X-Forwarded-For的值应该和X-Real-IP的值相同,为客户真实的 IP 地址
  • 如果处于二级代理下,那X-Forwarded-For的应该是类似的字符串7.8.9.10, 172.17.0.1,而X-Real-IP的值是172.17.0.17.8.9.10为客户真实的 IP 地址

简而言之,X-Real-IP仅仅是上游服务的地址,X-Forwarded-For中的第一个 IP 地址,才应该是客户请求时真实的 IP 地址。建议可以采用通过处理X-Forwarded-For的值来获取客户真实的 IP 地址


这样,启动 ALS 服务的方式也没改变:

1. 直接运行在 80 端口

docker run -d --name looking-glass --restart always --network host wikihostinc/looking-glass-server

2. 通过 Nginx 反向代理

2.1 启动 ALS 服务
sudo docker run -d -p 20000:80 --name looking-glass --restart always wikihostinc/looking-glass-server
2.2 配置 Nginx
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

server {
    listen 80;
    server_name speedtest.com;
    return 301 https://speedtest.com:443$request_uri;
}

server {
    listen 443 ssl http2;
    server_name speedtest.com;

    access_log /var/log/nginx/speedtest.com.access.log;
    error_log  /var/log/nginx/speedtest.com.error.log;

    client_max_body_size 20m;

    ssl_certificate /etc/letsencrypt/live/speedtest.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/speedtest.com/privkey.pem;

    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:20000;
    }
}

我自身也是学识有限,一知半解,希望能有抛砖引玉之效,谢谢

[BUG] AWS的VPS无法获得服务器IP,不能展示文件下载按钮

BUG 简短描述

环境

Ubuntu

使用的镜像版本 (docker ps | grep als):
最新

现象

获取不到服务器的IP地址,获取不到位置,下载文件的列表不显示,iperf3启动不了。

亚马逊的AWS是有两个IP的,一个内网ip,一个外网ip。后面的问题不知道是否和这个有关,我手工去vps上运行了:curl ifconfig.co/

结果不能返回ip地址,返回的一大段HTML代码。

烦请调查。

[BUG] ping 结果没有渲染

ping页面,ws中均有数据响应,但是结果没有渲染到页面

环境

操作系统
Window 10 ,edge和火狐浏览器

使用的镜像版本
演示站点、与本地Docker镜像(Last)

现象

ws中均有数据返回,但没有渲染到页面上
image
image

fakeshell延迟巨大

即使用ssh连接服务器执行fakeshell敲一个字母都有明显延迟感知,而其他部分都没问题

"/tmp/als_readme.md"的映射目录怎么写

今天看到大佬更新了,如果只写一句话,我明白是用SPONSOR_MESSAGE=xxx
我也看见可以用"/tmp/als_readme.md"来进行更多内容的补充,
我的理解是我在服务器上传"/tmp/als_readme.md"文件
但docker容器目录映射不是太会,希望有个说明

请教一下使用Nginx反代如何获取真实IP

使用Docker安装的 并且将端口改为8800,具体部署命令如下:
docker run -d --restart always
--name lookingglass
-e HTTP_PORT=8800
-p 8800:8800
wikihostinc/looking-glass-server

在使用Nginx将端口反代到域名时发现反代后无法正确识别IP地址,IP地址显示为172.17.0.1,
image
Nginx配置如下:
#PROXY-START/

location /
{
proxy_pass http://127.0.0.1:8800;
proxy_set_header Host $http_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;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
}
#PROXY-END/

想请教下如何配置能获取到访问的真实IP呢?

[BUG] 文件下载测试地址问题

BUG 简短描述

页面中 IPv4 下载测试 IPv6 下载测试实际都为访问的地址(域名),并没有分离 IPv4 和 IPv6。
这个问题应该是解决 Issues #33 的时候改的()

环境

操作系统 & Docker 版本 (lsb_release -a && docker version):

Ubuntu 22.04.3 LTS, Docker CE 24.0.6

使用的镜像版本 (docker ps | grep als):

latest

现象

预期返回:

ipv4按钮 "IPV4_ADDR_OR_DOMAIN/speedtest-static/1MB.test"
ipv6按钮 "IPV6_ADDR_OR_DOMAIN/speedtest-static/1MB.test"

实际返回:

ipv4按钮  href="./speedtest-static/1MB.test"
ipv6按钮  href="./speedtest-static/1MB.test"

建议

ui/src/components/Speedtest.vue 中,使用componentConfig.public_ipv4 / componentConfig.public_ipv6 构造按钮,但是可能涉及使用域名的问题,如果可以,追加 IPV4_DOMAIN, IPV6_DOMAIN相关可选配置最好。

服务器信息下没有返回服务器位置和IP信息

BUG 简短描述

环境

Debian11 &docker version 23.0.1

使用的镜像版本 (docker ps | grep als):版本好像无返回值

现象

预期返回:

服务器信息正确返回服务器位置和IP信息

实际返回:

服务器信息下没有返回服务器位置和IP信息,详情见图片


Snipaste_2023-03-24_14-59-45

[BUG] speedtest无法执行

BUG 简短描述

环境

Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm

使用二进制文件版本v2.0-fix1

现象

预期返回:

   Speedtest by Ookla

      Server: STC - Hong Kong (id: 1536)
         ISP: Netvigator
Idle Latency:     2.02 ms   (jitter: 0.04ms, low: 1.98ms, high: 2.04ms)
    Download:   849.48 Mbps (data used: 899.1 MB)                                                   
                  9.42 ms   (jitter: 4.61ms, low: 1.87ms, high: 244.72ms)
      Upload:   914.14 Mbps (data used: 412.0 MB)                                                   
                  8.20 ms   (jitter: 8.25ms, low: 2.01ms, high: 232.58ms)
 Packet Loss: Not available.

实际返回:

主页的speedtest.net功能停留在“测试很快开始”,通过shell执行speedtest返回如下:
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid

可否定制部分内容

感谢作者的回复,我也在TG频道做了推广 https://t.me/mffjc/1035
群友希望能有一些自主修改的地方
例如
服务器提供商
谁资助的测试节点
同时,希望有个交流的地方例如, tg组啥的

[BUG] nginx反代到子目录,网页不显示内容

容器采用bridge网络,把80端口映影到宿主机的81端口
nginx配置如下:
location /lg/ {
proxy_pass http://127.0.0.1:81;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_http_version 1.1;
}
在浏览器访问https://domain.com/lg/,页面为空白;如把location /lg/改为location /则正常显示。
Snipaste_2023-06-21_16-46-18

环境

操作系统 & Docker 版本 (lsb_release -a && docker version):
Ubuntu 22.04.2 LTS ARM
Client: Docker Engine - Community
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:52:53 2023
OS/Arch: linux/arm64
Context: default

使用的镜像版本 (docker ps | grep als):
9934e0c29cd0 wikihostinc/looking-glass-server:latest "/bin/sh -c 'php81 /…" 22 minutes ago Up 22 minutes 127.0.0.1:81->80/tcp

现象

预期返回: 正常访问looking glass页面

实际返回: 空白页

[BUG] 更新到最新版后 Web Shell 无法输入命令

更新到最新版的 docker image 以后,web shell 不再能输入指令。测试环境 http://hk-bgp.hkg.lg.kuaichedao.xyz/

环境

操作系统 & Docker 版本 (lsb_release -a && docker version):

 lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 11 (bullseye)
Release:	11
Codename:	bullseye
docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:03:17 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:01:23 2022
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

使用的镜像版本 (docker ps | grep als):

docker ps
CONTAINER ID   IMAGE                              COMMAND                  CREATED             STATUS             PORTS     NAMES
d865009577b0   wikihostinc/looking-glass-server   "/bin/sh -c 'php81 /…"   About an hour ago   Up About an hour             looking-glass
docker images
REPOSITORY                         TAG       IMAGE ID       CREATED         SIZE
wikihostinc/looking-glass-server   latest    3a494ee0c0db   4 hours ago     80.6MB

现象

预期返回:

能够通过浏览器的 Web Shell 输入测试指令。

实际返回:

光标闪烁,但是无法输入测试指令。

[BUG] Docker部署-通过Caddy反代打不开

如果直接用你提供的docker启动命令正常,通过VPSip+80端口可以访问

docker run -d --name looking-glass --restart always --network host wikihostinc/looking-glass-server

但我这里是通过反代进行的,就打不开,页面是白的
docker compose里是这样

    als:
        image: wikihostinc/looking-glass-server
        networks:
            - my_network
        container_name: als
        restart: always

    caddy:
        image: caddy:latest
        networks:
            my_network:
                ipv4_address: 172.19.0.5
        container_name: caddy
        hostname: caddy
        restart: unless-stopped
        logging:
            options:
                max-size: 10m
        volumes:
            - ./caddy/Caddyfile:/etc/caddy/Caddyfile
            #- ./site:/srv
            - caddy_data:/data
            - caddy_config:/config
volumes:
    caddy_data:
    caddy_config:

networks:
  my_network:
    ipam:
      driver: default
      config:
        - subnet: 172.19.0.0/16 

caddy也是docker compose部署,和als在同一个network下面

Caddyfile如下

mydomian.com {
    handle {
        reverse_proxy contain1:80
    }

    handle_path /contain2/* {
        reverse_proxy contain2:xxxx
    }

    handle_path /contain2/* {
        reverse_proxy contain3:xxx
    }

    handle_path /als/* {
        reverse_proxy als:80
    }

    encode gzip
    log {
        format console
    }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.