TS-WARP(5)

πŸ“¦
version 1.5.11 Β· 2 versions
, in nixpkgs unstable

πŸ’… ts-warp(5) β€” the config file page, bestie edition ✨

okay so this is the manual page for ts-warp's INI-like configuration file format, and honestly she's giving "classic INI but with a plot twist" πŸŽ€


🌸 NAME 🌸

TS-Warp INI-like configuration file format β€” the whole entire vibe of this page. no cap.


✨ DESCRIPTION ✨

so ts-warp uses INI-like configuration files to figure out which SOCKS servers go with which destinations that clients are willing to reach. lowkey iconic behavior fr fr.

the format of ts-warp INI-files is almost identical to the classical INI dialect β€” but there's one main exception, and it's kind of a big deal: duplicate names for keys are allowed within the same section. yes bestie, you read that right. duplicates. slay. πŸ’…

each section β€” that's a string enclosed in square brackets ('[', ']') β€” specifies a name for a SOCKS server block. a section consists of keys (variables) describing SOCKS server attributes, as well as keys specifying destination targets. it's giving organized chaos πŸ¦‹

remarks are specified with the ; and # characters β€” use them, they're your little comment besties ✨

and the detail that matters most: key names are case insensitive 😭 which literally means target_host is the exact same thing as tArGeT_HoSt. she does not care about your shift key. periodt.


πŸ‘‘ SOCKS server keys πŸ‘‘

  • socks_server = <IP | Hostname>[:port] β€” the mandatory variable, bestie, you literally cannot skip this one. specifies a SOCKS server for the section. the optional port number defaults to 1080. πŸ’–
  • socks_chain = SECTION_1, SECTION_N β€” defines a chain of sections with SOCKS servers that are required to reach first before contacting the server in the current section. optional variable, but like… chain energy, y'know? 🧚
  • socks_version = 5 | 4 β€” specifies the server SOCKS version. optional, defaults to 5. bestie is a modern girlie by default πŸ’…
  • socks_user = username β€” a username, for when the server requires authentication. and a heads-up: only plaintext authentication is supported. 🫢
  • socks_password = plain:PlaintextPassword | tsw01:HEXADECIMALHASH β€” a user password, for when the SOCKS-server requires authentication. you can specify it as plaintext if it's preceded with the plain: prefix, or encoded by ts-pass(8) with the TS-Warp obfuscation algorithm if the tsw01: prefix is set. iykyk πŸ”₯

πŸ¦‹ Target keys πŸ¦‹

  • target_host = <IP | Hostname>:[port_1[-port_n]] β€” describes a single target host, either with its IP address or a resolveable host name. optionally a port or a port range can be specified to narrow the band. 🎯
  • target_domain = example.org:[port_1[-port_n]] β€” specifies the name of a domain resolveable via DNS. optionally a port or a port range can be specified to narrow the band. 🌈
  • target_network = IP[:port_1[-port_n]]/Netmask β€” specifies an IPv4 or IPv6 subnet. and listen β€” netmasks are accepted only in dot-decimal notation, no exceptions bestie πŸ’€. optionally a port or a port range can be specified to narrow the band.
  • target_range = IP_1[:port_1[-port_n]]/IP_n β€” specifies a range of sequential IPv4, IPv6 addresses. optionally a port or a port range can be specified to narrow the band. ⭐

πŸ’– EXAMPLES πŸ’–

here's the whole glow-up in action, copied exactly so you can literally paste it:

[HOME NETWORK]                          ; Section definition
# Target definitions:
; target_host = 192.168.1.1
; target_host = Anvil
; target_network = 192.168.1.0/255.255.255.0
; target_network = 192.168.1.0/24
; target_range = 192.168.1.1/192.168.1.20
target_domain = balmora.lan

# Server definitions:
socks_server = 192.168.1.237
; socks_version = 5
socks_user = socks
; socks_password = plain:TopSecretPass@34
socks_password = tsw01:08415D5F6519633F1D150E08552837506D12383C177C176F7C322E1F562D

notice how half of these are commented out with ; and #? that's the vibe check β€” flip them on when you need them, bestie πŸ“


🫢 SEE ALSO 🫢

ts-warp(8), ts-warp.sh(1), ts-pass(1), gui-warp(1) β€” go read these too, they're all main characters πŸ’œ


and that's the page!! version 1.0, dated June 6, 2022, brought to you by the one and only Mikhail Zakharov. mwah πŸ’‹ thanks for reading bestie, now go configure something iconic βœ¨πŸ‘‘

πŸ“¦ where this page comes from
  • nixpkgs unstable: ts-warp 1.5.11
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms