Platform
Linux
ProxyBridge Version
3.2.0
OS and Version
Ubuntu 26.04 (aarch64)
Documentation
Code Review
Describe the Bug
When installing ProxyBridge on an ARM64 (aarch64) Ubuntu system using the official quick-install script, the installer places an x86_64 binary at /usr/local/bin/ProxyBridge instead of the ARM64 build. Running the binary fails because the kernel cannot execute a mismatched-architecture ELF file, and the shell falls back to interpreting the binary as a shell script, producing a confusing, unrelated error message.
Environment
Host: macOS (Apple Silicon)
VM: Lima VM running Ubuntu (ARM64)
VM architecture (uname -m): aarch64
Installed binary architecture (file output): ELF 64-bit LSB pie executable, x86-64
ProxyBridge version: 3.2.0
Steps to Reproduce
Inside an ARM64 Ubuntu VM (Lima), run the quick-install script:
curl -Lo deploy.sh https://raw.githubusercontent.com/InterceptSuite/ProxyBridge/refs/heads/master/Linux/deploy.sh && sudo bash deploy.sh
Try to run ProxyBridge:
sudo ProxyBridge --rule "::*:TCP:PROXY"
Expected Behavior
ProxyBridge should detect the host architecture (aarch64) and download/install the matching ARM64 binary, or deploy.sh should at least warn if no matching architecture asset is found.
Actual Behavior
The command fails with:
/usr/local/bin/ProxyBridge: 1: Syntax error: "(" unexpected
This error is misleading — it looks like a shell scripting issue, but is actually caused by the kernel rejecting the x86_64 ELF binary on an aarch64 system, with the shell then misinterpreting the binary's raw bytes as a script.
Diagnosis
uname -m
aarch64
file /usr/local/bin/ProxyBridge
/usr/local/bin/ProxyBridge: ELF 64-bit LSB pie executable, x86-64, ...
Confirms deploy.sh (or the underlying install logic) selected the wrong architecture's release asset.
Suggested Fix
deploy.sh should run uname -m and select the release asset matching the detected architecture (aarch64 → arm64 build, x86_64 → amd64 build).
Alternatively, print an explicit error during installation if no matching architecture asset is available, rather than silently installing the wrong binary.
Additional Context
No response
Platform
Linux
ProxyBridge Version
3.2.0
OS and Version
Ubuntu 26.04 (aarch64)
Documentation
Code Review
Describe the Bug
When installing ProxyBridge on an ARM64 (aarch64) Ubuntu system using the official quick-install script, the installer places an x86_64 binary at /usr/local/bin/ProxyBridge instead of the ARM64 build. Running the binary fails because the kernel cannot execute a mismatched-architecture ELF file, and the shell falls back to interpreting the binary as a shell script, producing a confusing, unrelated error message.
Environment
Host: macOS (Apple Silicon)
VM: Lima VM running Ubuntu (ARM64)
VM architecture (uname -m): aarch64
Installed binary architecture (file output): ELF 64-bit LSB pie executable, x86-64
ProxyBridge version: 3.2.0
Steps to Reproduce
Inside an ARM64 Ubuntu VM (Lima), run the quick-install script:
curl -Lo deploy.sh https://raw.githubusercontent.com/InterceptSuite/ProxyBridge/refs/heads/master/Linux/deploy.sh && sudo bash deploy.sh
Try to run ProxyBridge:
sudo ProxyBridge --rule "::*:TCP:PROXY"
Expected Behavior
ProxyBridge should detect the host architecture (aarch64) and download/install the matching ARM64 binary, or deploy.sh should at least warn if no matching architecture asset is found.
Actual Behavior
The command fails with:
/usr/local/bin/ProxyBridge: 1: Syntax error: "(" unexpected
This error is misleading — it looks like a shell scripting issue, but is actually caused by the kernel rejecting the x86_64 ELF binary on an aarch64 system, with the shell then misinterpreting the binary's raw bytes as a script.
Diagnosis
uname -m
aarch64
file /usr/local/bin/ProxyBridge
/usr/local/bin/ProxyBridge: ELF 64-bit LSB pie executable, x86-64, ...
Confirms deploy.sh (or the underlying install logic) selected the wrong architecture's release asset.
Suggested Fix
deploy.sh should run uname -m and select the release asset matching the detected architecture (aarch64 → arm64 build, x86_64 → amd64 build).
Alternatively, print an explicit error during installation if no matching architecture asset is available, rather than silently installing the wrong binary.
Additional Context
No response