Report this

What is the reason for this report?

VLESS VPN connects but no traffic passes through (DigitalOcean VPS + x-ui + Xray)

Posted on May 29, 2026

Hello,

I am running a DigitalOcean Ubuntu VPS with x-ui and Xray 26.5.9.

The VPS itself appears to be working correctly:

  • Internet access works from the server (ping and curl are successful)
  • Xray is running
  • The inbound port is listening and confirmed with: ss -lntp

I tested both:

  • VLESS Reality
  • Simple VLESS TCP with security = none

Client:

  • iPhone
  • V2Ray client on iOS

Problem: The VPN connects successfully and the iPhone shows the VPN icon as connected. However, no websites load and traffic remains at 0 B. As soon as I disconnect the VPN, normal internet access immediately works again.

Additional information:

  • I removed custom routing/block rules for testing.
  • I tested a new simple VLESS TCP inbound with no Reality and no Flow.
  • The inbound port is listening correctly.
  • The server itself has outbound internet connectivity.

What should I check next to determine why the VPN connection is established but no traffic passes through the tunnel?

Thank you.



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Hi there,

First thing to check is whether DigitalOcean’s cloud firewall is allowing traffic on port 36730. The port being open on the OS level via ss -lntp does not mean the cloud firewall is passing it through. Go to Networking > Firewalls in the control panel and confirm that port is explicitly allowed for inbound TCP.

Second, check IP forwarding on the server. Xray needs the kernel to forward packets between interfaces:

sysctl net.ipv4.ip_forward

If it returns 0, enable it:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

Third, check your iptables rules. Some setups have a default DROP policy on the FORWARD chain which silently blocks all routed traffic even when the connection itself succeeds:

iptables -L FORWARD -n

If it shows DROP as the default policy, that is your problem.

Fourth, DNS could be the issue. Even if the tunnel is up, if DNS queries are not routing through it, nothing will load. Try hardcoding a DNS server in your client config like 1.1.1.1 and see if that changes anything.

The IP forwarding and iptables FORWARD chain are the most likely culprits based on what you have described.

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Start building today

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

Dark mode is coming soon.