Giter Site home page Giter Site logo

als's People

Contributors

code-factor avatar dependabot[bot] avatar max-sum avatar samlm0 avatar tsosunchia avatar upbeat-backbone-bose avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

als's Issues

可否定制部分内容

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

请教如何改端口?

看说明是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] 允许flood ping

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

[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

请教一下使用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] 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

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

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

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

BUG 简短描述

环境

Debian11 &docker version 23.0.1

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

现象

预期返回:

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

实际返回:

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


Snipaste_2023-03-24_14-59-45

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

BUG 简短描述

环境

Ubuntu

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

现象

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

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

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

烦请调查。

fakeshell延迟巨大

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

[BUG] ping 结果没有渲染

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

环境

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

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

现象

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

[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] 文件下载测试地址问题

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相关可选配置最好。

[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] 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
    }
}

[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):

现象

预期返回:

这样这样这样

实际返回:

那样那样那样

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.