• Stars
    star
    1,536
  • Rank 30,284 (Top 0.6 %)
  • Language
    Go
  • License
    GNU General Publi...
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

zoro can help you expose local server to external network. Support both TCP/UDP, of course support HTTP. Zero-Configuration.

zoro

中文

zoro (mr2) can help you expose local server to external network. Support both TCP/UDP, of course support HTTP/HTTPS. Keep it simple, stupid.

❤️ A project by txthinking.com

Install via nami

nami install zoro

Install via brew

brew install zoro

Usage

NAME:
   zoro - Expose local TCP and UDP server to external network

USAGE:
   zoro [global options] command [command options] [arguments...]

COMMANDS:
   server       Run as server mode
   client       Run as client mode
   httpsserver  Run as https server mode
   httpsclient  Run as https client mode
   help, h      Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help (default: false)
   --version, -v  print the version (default: false)

server and client

On remote server. Note that the firewall opens TCP and UDP on all relevant ports

$ zoro server --listen :9999 --password password

More parameters: $ zoro server --help

On local. Assume your remote zoro server is 1.2.3.4:9999, your local server is 127.0.0.1:8080, want the remote server to open port 8888

$ zoro client --server 1.2.3.4:9999 --password password --serverport 8888 --client 127.0.0.1:8080

More parameters: $ zoro client --help

Then access 1.2.3.4:8888 equals to access 127.0.0.1:8080

httpsserver and httpsclient

On remote server. Assume your domain is domain.com, cert of *.domain.com is ./domain_com_cert.pem and ./domain_com_cert_key.pem, want https listen on 443. Note that the firewall opens TCP on all relevant ports

$ zoro httpsserver --listen :9999 --password password --domain domain.com --cert ./domain_com_cert.pem --key ./domain_com_cert_key.pem --tlsport 443

More parameters: $ zoro httpsserver --help

On local. Assume your remote zoro httpsserver is 1.2.3.4:9999, your local HTTP 1.1 server is 127.0.0.1:8080, want the remote server to open subdomain hello

$ zoro httpsclient --server 1.2.3.4:9999 --password password --subdomain hello --client 127.0.0.1:8080

More parameters: $ zoro httpsclient --help

Then access https://hello.domain.com:443 equals to access http://127.0.0.1:8080

Example of server and client

Expose local HTTP server

$ zoro client --server 1.2.3.4:9999 --password password --serverport 8888 --client 127.0.0.1:8080

Then access 1.2.3.4:8888 equals to access 127.0.0.1:8080

Expose local SSH

$ zoro client --server 1.2.3.4:9999 --password password --serverport 8888 --client 127.0.0.1:22

Then access 1.2.3.4:8888 equals to access 127.0.0.1:22

$ ssh -oPort=8888 [email protected]

Expose local DNS server

$ zoro client --server 1.2.3.4:9999 --password password --serveport 8888 --client 127.0.0.1:53

Then access 1.2.3.4:8888 equals to access 127.0.0.1:53

$ dig github.com @1.2.3.4 -p 8888

Expose local directory via HTTP

$ zoro client --server 1.2.3.4:9999 --password password --serverport 8888 --dir /path/to/www --dirport 8080

Then access 1.2.3.4:8888 equals to access 127.0.0.1:8080, web root is /path/to/www

Expose any TCP/UDP service

...

About UDP

In some cases of multi-layer NAT, UDP may fail. I passed the test when I connected directly to the Wi-Fi provided by the ISP.

License

Licensed under The GPLv3 License

More Repositories

1

brook

A cross-platform programmable network tool
Go
14,398
star
2

google-hosts

Google hosts generator
Shell
3,328
star
3

socks5

SOCKS Protocol Version 5 Library in Go. Full TCP/UDP and IPv4/IPv6 support
Go
641
star
4

nami

A clean and tidy decentralized package manager.
Go
301
star
5

tun2brook

Proxy all traffic just one line command. tun2socks, tun2brook. IPv4 and IPv6, TCP and UDP.
Go
266
star
6

blackwhite

https://github.com/txthinking/brook/tree/master/programmable
JavaScript
246
star
7

joker

Joker can turn process into daemon. Zero-Configuration
C
186
star
8

brook-manager

Brook Manager is a Brook management system for medium to large merchants.
HTML
123
star
9

nico

A HTTP3 web server for reverse proxy and single page application, automatically apply for ssl certificate, Zero-Configuration.
Go
112
star
10

bypass

https://github.com/txthinking/brook/tree/master/programmable
JavaScript
94
star
11

Mailer

A lightweight PHP SMTP mail sender
PHP
93
star
12

frank

Frank is a REST API automated testing tool like Postman but in command line. Auto generate markdown API document.
Go
91
star
13

z

z - process manager
Zig
53
star
14

socks5-configurator

Configure your Chrome with socks5 proxy
JavaScript
50
star
15

mad

Generate root CA and derivative certificate for any domains and any IPs.
Go
37
star
16

soso

HTML
26
star
17

crypto

crypto: Encryption, Hash, Encoding Library
Go
26
star
18

mailx

A lightweight SMTP mail library
Go
25
star
19

cloudupload

Upload files to multiple Cloud Storage in parallel. Automatically apply for ssl certificate with your domain.
Go
25
star
20

jb

jb: write script in an easier way than bash
Zig
20
star
21

bash

One-Click Scripts.
JavaScript
19
star
22

wiresharkhelper

https://www.txthinking.com
19
star
23

x

A util library on golang.
Go
17
star
24

runnergroup

RunnerGroup is like sync.WaitGroup, the diffrence is if one task stops, all will be stopped.
Go
16
star
25

sshexec

A command-line tool to execute remote command through ssh
Go
16
star
26

filelink

Upload and download file in command line
JavaScript
15
star
27

hancock

Manage multiple remote servers and execute commands remotely
Go
14
star
28

denobundle

Bundle assets into the binary with deno compile
JavaScript
14
star
29

denolib

A Deno library to keep everything small.
JavaScript
11
star
30

testsocks5

Test TCP and UDP of socks5 server
Shell
10
star
31

httpserver

This is a very simple http static server, sometimes we need it for testing
Shell
9
star
32

shiliew

An encrypted, undetectable, simple business proxy/VPN.
9
star
33

mail-checker

A chrome extension for checking unseen mail count. http://goo.gl/U4XkPR
JavaScript
8
star
34

markdown

markdown converter and documentation generator
JavaScript
7
star
35

coding-principle

建议编码风格
5
star
36

pingpong

TCP & UDP echo but with address
JavaScript
5
star
37

cloudflare

cloudflare cli
Shell
5
star
38

php-multipart-form-data-leak

POC for php multipart form data leak, make cpu full
Go
4
star
39

no-referer-image

A chrome extention for removing referer header when requesting image
JavaScript
3
star
40

codeinstall

HTML
2
star
41

txthinking

https://www.txthinking.com
2
star
42

testbrook

JavaScript
1
star
43

sitemap

Build sitemap.xml
JavaScript
1
star