ThePorgs / Exegol

Fully featured and community-driven hacking environment
https://exegol.readthedocs.io/
GNU General Public License v3.0
1.95k stars 191 forks source link

Remote Desktop feature dont work #224

Closed st3rven closed 3 months ago

st3rven commented 5 months ago

Describe the bug

Hi! I’m just starting to use Exegol and I’m having trouble using the remote desktop option. The port appears to be listening on my host machine, but I can’t access the service.

Environment

Evidence:

Steps To Reproduce

No response

Exegol Wrapper Version

[*] Exegol is currently in version v4.3.4
[*] Exegol Discord serv.: https://discord.gg/cXThyp7D6P
[*] Exegol documentation: https://exegol.rtfd.io/
[D] Pip installation: On βœ”
[D] Git source installation: Off πŸͺ“
[D] Host OS: Mac (Docker desktop)
[D] Arch: arm64
[D] Docker desktop: On βœ”
[D] Shell type: Mac
[D] Last wrapper update check: 20/06/2024

[*] Exegol is currently in version v4.3.4
[*] Exegol Discord serv.: https://discord.gg/cXThyp7D6P
[*] Exegol documentation: https://exegol.rtfd.io/

Host OS

MacOS

Configuration of the concerned container

No response

Execution logs in debug mode

❯ exegol start --desktop --disable-X11 exegol nightly -vvv
[*] Exegol is currently in version v4.3.4
[*] Exegol Discord serv.: https://discord.gg/cXThyp7D6P
[*] Exegol documentation: https://exegol.rtfd.io/
[D] Pip installation: On βœ”
[D] Git source installation: Off πŸͺ“
[D] Host OS: Mac (Docker desktop)
[D] Arch: arm64
[D] Docker desktop: On βœ”
[D] Shell type: Mac
[D] Last wrapper update check: 20/06/2024

[*] Starting exegol
[*] Arguments supplied with the command, skipping interactive mode
[D] Attribute not found in parameters: multicontainertag
[V] Configuring new exegol container
[D] Attribute not found in parameters: multiimagetag
[D] └── nightly β†’ (remote) sha256:66673ef400645c6f32bc394b62afe77a6038645a826a7d373db6acfe54dd4edf
[D] Auto-load remote version for the specific image 'nightly'
[!] Timezone sharing on Mac is not supported (for stability reasons). Skipping.
[!] Host network mode for Docker desktop (Windows & macOS) is not available.
[V] Official doc: https://docs.docker.com/network/drivers/host/#docker-desktop
[*] To share network ports between the host and exegol, use the --port parameter.
[V] Config: Enabling my-resources volume
[V] Updating the permissions of /Users/Elliot/.exegol/my-resources (and sub-folders) to allow file sharing between the container and the host user
[D] Adding setgid permission recursively on directories from /Users/Elliot/.exegol/my-resources
[D] Loading git at /Users/Elliot/.exegol/exegol-resources
[D] Repo path: /Users/Elliot/.exegol/exegol-resources/.git
[D] Git repository successfully loaded
[V] Config: Enabling exegol resources volume
[V] Config: Enabling exegol desktop
[D] Desktop port will be set automatically
[D] Attempting to bind to interface 127.0.0.1
[D] Found available port 55275
[D] Adding port 127.0.0.1:55275 -> 6080/tcp

⭐ Container summary
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             Name β”‚ exegol                                                                                                                    β”‚
β”‚            Image β”‚ nightly - v.53b086e1 (Up to date) (amd64)                                                                                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚      Credentials β”‚ root : p58ImmbjdKcCfRbIH7Hzk6DTL7OazI                                                                                     β”‚
β”‚   Remote Desktop β”‚ http://localhost:55275                                                                                                    β”‚
β”‚      Console GUI β”‚ Off πŸͺ“                                                                                                                    β”‚
β”‚          Network β”‚ bridge                                                                                                                    β”‚
β”‚         Timezone β”‚ Off πŸͺ“                                                                                                                    β”‚
β”‚ Exegol resources β”‚ On βœ” (/opt/resources)                                                                                                     β”‚
β”‚     My resources β”‚ On βœ” (/opt/my-resources)                                                                                                  β”‚
β”‚    Shell logging β”‚ Off πŸͺ“                                                                                                                    β”‚
β”‚       Privileged β”‚ Off βœ”                                                                                                                     β”‚
β”‚        Workspace β”‚ Dedicated (/workspace)                                                                                                    β”‚
β”‚             Envs β”‚ EXEGOL_DESKTOP_PROTO=http                                                                                                 β”‚
β”‚                  β”‚ EXEGOL_USERNAME=root                                                                                                      β”‚
β”‚                  β”‚ EXEGOL_DESKTOP_PORT=6080                                                                                                  β”‚
β”‚            Ports β”‚ 127.0.0.1:55275 ➑ 6080/tcp                                                                                                β”‚
β”‚          Volumes β”‚ (RO) /Users/Elliot/.local/pipx/venvs/exegol/lib/python3.12/site-packages/exegol/utils/imgsync/spawn.sh ➑ /.exegol/spawn.sh β”‚
β”‚                  β”‚ (RW) /Users/Elliot/.exegol/my-resources ➑ /opt/my-resources                                                                β”‚
β”‚                  β”‚ (RW) /Users/Elliot/.exegol/exegol-resources ➑ /opt/resources                                                               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

[*] Creating new exegol container
[V] Updating the permissions of /Users/Elliot/.exegol/workspaces/exegol (and sub-folders) to allow file sharing between the container and the host user
[D] Adding setgid permission recursively on directories from /Users/Elliot/.exegol/workspaces/exegol
[D] exegol - nightly
Privileged: False
Capabilities: []
Sysctls: {}
X: False
TTY: True
Network host: bridge
Ports: {'6080/tcp': ('127.0.0.1', 55275)}
Share timezone: False
Common resources: True
Envs (3): EXEGOL_DESKTOP_PROTO
EXEGOL_USERNAME
EXEGOL_DESKTOP_PORT
Labels (1): org.exegol.feature.desktop
Shares (4): {'Target': '/.exegol/spawn.sh', 'Source': '/Users/Elliot/.local/pipx/venvs/exegol/lib/python3.12/site-packages/exegol/utils/imgsync/spawn.sh',
'Type': 'bind', 'ReadOnly': True}
{'Target': '/opt/my-resources', 'Source': '/Users/Elliot/.exegol/my-resources', 'Type': 'bind', 'ReadOnly': False}
{'Target': '/opt/resources', 'Source': '/Users/Elliot/.exegol/exegol-resources', 'Type': 'bind', 'ReadOnly': False}
{'Target': '/workspace', 'Source': '/Users/Elliot/.exegol/workspaces/exegol', 'Type': 'bind', 'ReadOnly': False}
Devices (0):
VPN: N/A
[D] Entrypoint: ['/bin/bash', '/.exegol/entrypoint.sh']
[D] Cmd: ['load_setups', 'desktop', 'endless']
[+] Exegol container successfully created !
[D] Loading container: exegol-exegol
[D] └── Parsing envs : EXEGOL_DESKTOP_PROTO=http
[D] └── Parsing envs : EXEGOL_USERNAME=root
[D] └── Parsing envs : EXEGOL_DESKTOP_PORT=6080
[D] └── Parsing envs : PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[D] └── Parsing label : org.exegol.app
[D] └── Parsing label : org.exegol.build_date
[D] └── Parsing label : org.exegol.feature.desktop
[D] Desktop proto set: http
[D] Desktop host set: 127.0.0.1
[D] Desktop port set: 55275
[D] └── Parsing label : org.exegol.metadata.creation_date
[D] └── Parsing label : org.exegol.metadata.passwd
[D] └── Parsing label : org.exegol.src_repository
[D] └── Parsing label : org.exegol.tag
[D] └── Parsing label : org.exegol.version
[D] └── Capabilities : []
[D] └── Load devices : []
[D] └── Parsing mount : {'Type': 'bind', 'Source': '/Users/Elliot/.local/pipx/venvs/exegol/lib/python3.12/site-packages/exegol/utils/imgsync/spawn.sh',
'Destination': '/.exegol/spawn.sh', 'Mode': '', 'RW': False, 'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source': '/Users/Elliot/.exegol/my-resources', 'Destination': '/opt/my-resources', 'Mode': '', 'RW': True,
'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source': '/Users/Elliot/.exegol/exegol-resources', 'Destination': '/opt/resources', 'Mode': '', 'RW': True,
'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source': '/Users/Elliot/.exegol/workspaces/exegol', 'Destination': '/workspace', 'Mode': '', 'RW': True,
'Propagation': 'rprivate'}
[D] └── Loading workspace volume source : /Users/Elliot/.exegol/workspaces/exegol
[D] └── Private workspace detected
[D] Entrypoint script path: /Users/Elliot/.local/pipx/venvs/exegol/lib/python3.12/site-packages/exegol/utils/imgsync/entrypoint.sh
[V] Starting exegol
[V] Installing my-resources custom setup ...
[V] Compressing my-resources logs
[V] My-resources loaded
[V] Starting Exegol desktop with http
[D] Updating the root password inside the container
[*] Location of the exegol workspace on the host : /Users/Elliot/.exegol/workspaces/exegol
[+] Opening shell in Exegol 'exegol'
[D] Opening shell with: docker exec -e EXEGOL_START_SHELL=zsh -ti 8005a348f51db66491390551a0888eeb01e492853cc4cd052e16cbadae1ac88a /.exegol/spawn.sh

Exception

No response

Anything else?

No response

Dramelac commented 4 months ago

Hello

Can you check if the virtual desktop process are running ? Run ps -faux inside your container to check. If there is none, try to run desktop-start and screenshot the output to see if there is any error

Thank you

st3rven commented 4 months ago

Hi @Dramelac,

the process is not running, and when I tried to execute the mentioned command I receive the following error message: assertion failed [rem_idx != -1]: Unable to find existing allocation for shared memory segment to unmap (VMAllocationTracker.cpp:745 remove_shared_mem)

image

cdrmx commented 4 months ago

Hi all

Same issue with this configuration :

Host OS: Fedora
Exegol version: 4.3.4
Image: full - v.3.1.4
Firefox: 128.0

Test the same command :

exegol

exegol_2

Can't access I try to recreate workspace.... Nothing

Thank's for your help

Dramelac commented 3 months ago

Unable to find existing allocation for shared memory segment to unmap

Hello @st3rven I have found this post with the same kind of error: https://forums.docker.com/t/unable-to-find-existing-allocation-for-shared-memory-segment-to-unmap/139868 You can try to fix it by increasing the virtual disk limit in docker desktop

Hello @cdrmx we've heard of a bug with fedora and the desktop feature, we're investigating.

st3rven commented 3 months ago

Hi @Dramelac The error persists even after updating to 240 GB. My configuration.

image

Dramelac commented 3 months ago

Hi @Dramelac The error persists even after updating to 240 GB. My configuration.

We were unfortunately unable to reproduce. I'm not sure where the error is, either from vnc service or from docker desktop. Maybe try to use orbstack instead of docker desktop to see if the bug persist.

st3rven commented 3 months ago

I installed OrbStack and migrated the container (without creating a new one), and I don’t know what kind of black magic it does, but it works! So, the most logical conclusion is that the issue lies with Docker Desktop. I guess it’s just another one of life’s mysteries.

image

Dramelac commented 3 months ago

Yeah docker desktop have a lot of weird bug ^^' Enjoy your desktop ! I'm closing this issue because it was related to a desktop bug on Docker Desktop but, (@cdrmx) regarding fedora, a patch will be deploy with the next nightly image !