Skip to content

Latest commit

 

History

1,198 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

natcap

A code very difficult to read, an implementation of transparent proxy protocol to break through the firewall.

TCP flow establishing connection

Image of TCP flow establishing connection

How router works

https://github.com/ptpt52/natcap/blob/master/docs/multi_conn.pdf

TCP encode headers

https://github.com/ptpt52/natcap/blob/master/docs/natcap_tcp_type1.pdf https://github.com/ptpt52/natcap/blob/master/docs/natcap_tcp_type2.pdf https://github.com/ptpt52/natcap/blob/master/docs/natcap_tcp_type3.pdf

Install on Ubuntu

Install essential packages

sudo apt-get install build-essential ipset libev-dev
sudo apt-get build-dep linux-image-`uname -r`
sudo apt-get install lua5.1 lua-cjson lua-bitop ipcalc

Get the source code

git clone https://github.com/ptpt52/natcap.git

Build and run as client

cd natcap
make && make -C natcapd
#edit client.sh change server line
sudo ./client.sh

Build and run as server

cd natcap
make && make -C natcapd
sudo ./server.sh

Control writes

/dev/natcap_ctl and /dev/natcap_peer_ctl accept newline-terminated commands up to 256 bytes including the newline. Each open file keeps its own incomplete line, which is discarded on final close. Finish a split command on the same open file; separate opens never share partial input.

Writes through the same open file (including dup/fork) serialize copying, parsing and command execution. Reads use a separate buffer. Callers must still coordinate split commands on a shared file and multi-command configuration sequences; this does not serialize configuration updates across separate opens. For a short write, continue from the returned byte count. A command execution error discards the assembled line; retry the complete command if appropriate.

Authentication redirect URL

In server or mixing mode, auth_http_redirect_url=<URL> sets the HTTP 302 authentication redirect. The control line is limited to 256 bytes including the terminating newline, so the URL can contain at most 232 bytes (without whitespace). Accepted URLs are preserved in both the Location header and the HTML link without truncation.

License

Copyright: 2012, Chen Minqiang <ptpt52@gmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

Donate

Buy me a beer!

BITCOIN ADDR: 3CJ5VwxL8ageKpA3jJ561rvhkFW4FmZiqc

About

A code very difficult to read, an implementation of transparent proxy protocol to break through the firewall.

Resources

Stars

89 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages