TigerProxies logo
Guide

One VLESS Tunnel per Line for Price and Stock Monitoring

Published · Updated

Price and stock monitoring is a many-lines problem. You watch several retailers, each retailer should see one steady carrier IP rather than a crowd, and you want to know which line a failure came from. A VLESS line per retailer, each terminating on its own local port, gives you that structure on a single machine: your monitor picks a retailer by picking a port, the credentials never leave the box, and the encrypted path means the office or datacenter network in between sees only HTTPS. This guide sets that up with a desktop client for a small setup and with the Xray core for a larger one.

Gather the lines

In the TigerProxies dashboard, open My proxies. Each line that runs Xray has a VLESS / Xray row with a copy button. Give each line a note in the dashboard naming the retailer it will serve, then copy each vless:// string in turn; the name at the end of the string is what the clients will show. Each string is a credential, so keep them private and use Revoke access to reissue one if it leaks. Our server-based lines offer VLESS; when ordering, tick VLESS / Xray in the filters.

Decide the mapping before you touch a config: which retailer gets which line, and therefore which city. A retailer that prices by region should be watched from the region you care about, and the line's location is the only thing that decides what region the retailer sees. Write the mapping down next to the ports; it is the piece of the setup you will need again in three months when a line is moved and a config has to be updated.

Small setups: Nekoray on Windows or Linux

Nekoray manages many profiles in one window and can run several at once, each on its own local port, which is exactly the shape a monitoring box wants.

Nekoray keeps a URL test per profile, which is a cheap way to see which tunnel is down at a glance. Leave TUN mode off on a monitoring box; you want only the monitor's traffic on the lines, on the ports you chose, and nothing else on the machine touching a carrier IP by accident.

  1. Grab Nekoray for your platform from its releases page, then run it.
  2. For each line, copy the vless:// string and choose Program, then Add profile from clipboard. Rename each profile to the retailer it serves.
  3. Open each profile's settings and give it its own inbound port, for example 2081 for the first retailer, 2082 for the second.
  4. Start each profile. Nekoray shows the local port beside it.
  5. Point the monitor at the right port per retailer. Leave System Proxy off; the machine's other traffic should not go through the lines.

Larger setups: one xray process, many ports

Past a handful of lines, run the Xray core headless. One process, one inbound per line, one outbound per line, and routing rules that tie them together. Replace the placeholders with the values from each link.

{
  "inbounds": [
    {"tag": "retailer-a", "listen": "127.0.0.1", "port": 2081, "protocol": "socks"},
    {"tag": "retailer-b", "listen": "127.0.0.1", "port": 2082, "protocol": "socks"}
  ],
  "outbounds": [
    {"tag": "line-a", "protocol": "vless",
     "settings": {"vnext": [{"address": "HOST_A", "port": PORT_A,
       "users": [{"id": "UUID_A", "encryption": "none", "flow": "xtls-rprx-vision"}]}]},
     "streamSettings": {"network": "tcp", "security": "reality",
       "realitySettings": {"serverName": "SNI_A", "fingerprint": "chrome",
         "publicKey": "PBK_A", "shortId": "SID_A"}}},
    {"tag": "line-b", "protocol": "vless", "settings": {"vnext": [{"address": "HOST_B", "port": PORT_B,
       "users": [{"id": "UUID_B", "encryption": "none", "flow": "xtls-rprx-vision"}]}]},
     "streamSettings": {"network": "tcp", "security": "reality",
       "realitySettings": {"serverName": "SNI_B", "fingerprint": "chrome",
         "publicKey": "PBK_B", "shortId": "SID_B"}}}
  ],
  "routing": {"rules": [
    {"type": "field", "inboundTag": ["retailer-a"], "outboundTag": "line-a"},
    {"type": "field", "inboundTag": ["retailer-b"], "outboundTag": "line-b"}
  ]}
}
xray run -c monitor.json
curl -x socks5h://127.0.0.1:2081 https://api.ipify.org
curl -x socks5h://127.0.0.1:2082 https://api.ipify.org

Monitoring habits that suit one line per retailer

  • Keep each retailer on its own port and never let a retry fall over to another line; a retailer seeing two carrier IPs in quick succession is more suspicious than one slow request.
  • Space the checks out. A carrier IP that hits a product page every few seconds behaves like nothing a phone does.
  • Rotate on a schedule that matches how often a real shopper would return, not on every request. The tunnel stays up across rotation; only the IP changes.
  • Log the port with every result so a block or a price anomaly is traced to a line in one step.
  • Run xray under a supervisor so a reboot brings all tunnels back before the monitor starts.

Checking the box

Give the box a routine. Before the first check of the day, confirm every port answers and every IP is different; after any move or modem switch in the dashboard, update that line's values and restart xray before the monitor runs again. Most of the odd results we are asked about turn out to be a stale id or two ports sharing an outbound, and both show up in a thirty-second check.

With everything running, curl an IP check through each port in turn. Every port should report a different carrier IP, and each should match the city of the line it maps to. If two ports report the same IP, two inbounds are routed to the same outbound tag. If one port refuses, that line's tunnel is down: check the xray log for the tag. An invalid request user id entry means the line was moved or its modem switched, which issues a new id; copy the current link from the dashboard and update the config. Handshake failures across every line at once mean the host clock has drifted.

Phones and laptops for spot checks

When someone needs to look at a retailer page by hand on the same IP the monitor uses, import that line's vless:// string into V2Box on an iPhone or Mac, or v2rayNG on Android, or v2rayN on Windows. Import from clipboard, select, connect. It joins the same modem and counts as one more client on that line.

Frequently asked

Can all the retailers share one line through one tunnel?

They can, but you lose the one-retailer-one-IP structure that keeps checks looking like shoppers. Use a line per retailer where it matters.

How do I add a line later?

Copy its vless:// string, add an inbound on the next port and an outbound with its values, add a routing rule, and restart xray. In Nekoray, add a profile and give it a port.

Does the tunnel change how the retailer sees the request?

No. The retailer sees the line's carrier IP and your client's headers, exactly as over SOCKS5. The tunnel only protects the path from your box to our server.

USA mobile proxies on hardware we own

Eight US metros, real 4G and 5G carrier IPs, unlimited rotation, sticky sessions and your pick of HTTP(S) or SOCKS5. Hold a line for a two-hour drop from $2, or the whole day from $4; hours paid are applied to the day.

View plans See all locations