enthus1ast / nimsocks Goto Github PK
View Code? Open in Web Editor NEWA filtering SOCKS proxy server and client library written in nim.
License: MIT License
A filtering SOCKS proxy server and client library written in nim.
License: MIT License
Line 363 in 19defc5
A failed send will raise an exception that is not caught. The use of asyncCheck
will make the exception leak to runForever
poll, while the socket itself is never closed:
Line 336 in 19defc5
Apple uses insecure (no TLS) OCSP and it'd be great to block only some of those.
Since the whole URL (not just FQDN) is available, a regex would be suitable for such filtering.
This may be weird, but running the command "nimble install nimSocks" gives the "package not found" error.
What is the method of installation?
signal(7), SIGHUP
maybe also download the new "malware" blacklist for convenience
Error: cannot open file: std/enumutils
Nim Compiler Version 0.20.2 [MacOSX: amd64]
nim compile --run server.nim
Hint: used config file '/usr/local/Cellar/nim/0.20.2/nim/config/nim.cfg' [Conf]
...
/nim/nimSocks/nimSocks/server.nim(144, 77) template/generic instantiation ofasync
from here
/nim/nimSocks/nimSocks/server.nim(211, 5) Error: invalid else, all cases are already covered
Help the nim novice, please
Handling command: succeed
Handling command: succeed
connection from: 127.0.0.1
socks4
host: 0.0.0.1
socks4a
vid.example.com
Handling command: succeed
Traceback (most recent call last)
server.nim(442) server
asyncdispatch.nim(1010) runForever
asyncdispatch.nim(1045) poll
asyncdispatch.nim(179) processPendingCallbacks
asyncmacro.nim(34) cb0
server.nim(137) pumpIter
asyncmacro.nim(393) send
asyncmacro.nim(34) cb0
asyncnet.nim(426) sendIter
asyncdispatch.nim(1274) send
asyncdispatch.nim(1130) send
asyncdispatch.nim(982) addWrite
[[reraised from:
server.nim(442) server
asyncdispatch.nim(1010) runForever
asyncdispatch.nim(1045) poll
asyncdispatch.nim(179) processPendingCallbacks
asyncmacro.nim(34) cb0
asyncmacro.nim pumpIter
asyncfutures.nim(243) read
]]
[[reraised from:
server.nim(442) server
asyncdispatch.nim(1010) runForever
asyncdispatch.nim(1045) poll
asyncdispatch.nim(179) processPendingCallbacks
asyncfutures.nim(288) :anonymous
]]
Error: unhandled exception: File descriptor not registered.
send's lead up to read of failed Future:
Traceback (most recent call last)
server.nim(442) server
asyncdispatch.nim(1010) runForever
asyncdispatch.nim(1045) poll
asyncdispatch.nim(179) processPendingCallbacks
asyncmacro.nim(34) cb0
asyncnet.nim(426) sendIter
asyncdispatch.nim(1274) send
asyncdispatch.nim(1130) send
asyncdispatch.nim(982) addWrite
[[reraised from:
server.nim(442) server
asyncdispatch.nim(1010) runForever
asyncdispatch.nim(1045) poll
asyncdispatch.nim(179) processPendingCallbacks
asyncmacro.nim(34) cb0
asyncmacro.nim pumpIter
asyncfutures.nim(243) read
]]
[[reraised from:
server.nim(442) server
asyncdispatch.nim(1010) runForever
asyncdispatch.nim(1045) poll
asyncdispatch.nim(179) processPendingCallbacks
asyncfutures.nim(288) :anonymous
]]
Error: unhandled exception: File descriptor not registered.
send's lead up to read of failed Future:
Traceback (most recent call last)
server.nim(442) server
asyncdispatch.nim(1010) runForever
asyncdispatch.nim(1045) poll
asyncdispatch.nim(179) processPendingCallbacks
asyncmacro.nim(34) cb0
server.nim(137) pumpIter
asyncmacro.nim(393) send
asyncmacro.nim(34) cb0
asyncnet.nim(426) sendIter
asyncdispatch.nim(1274) send
asyncdispatch.nim(1130) send
asyncdispatch.nim(982) addWrite
pump's lead up to read of failed Future:
Traceback (most recent call last)
server.nim(442) server
asyncdispatch.nim(1010) runForever
asyncdispatch.nim(1045) poll
asyncdispatch.nim(179) processPendingCallbacks
asyncmacro.nim(34) cb0
server.nim(137) pumpIter
asyncmacro.nim(393) send
asyncmacro.nim(34) cb0
asyncnet.nim(426) sendIter
asyncdispatch.nim(1274) send
asyncdispatch.nim(1130) send
asyncdispatch.nim(982) addWrite
[[reraised from:
server.nim(442) server
asyncdispatch.nim(1010) runForever
asyncdispatch.nim(1045) poll
asyncdispatch.nim(179) processPendingCallbacks
asyncmacro.nim(34) cb0
asyncmacro.nim pumpIter
asyncfutures.nim(243) read
]] [ValueError]
Any chance on supporting a reverse socks proxy mode similar to Chisel? This would allow for more flexible proxy support in the case of strict egress filtering.
systemd services can already start deamons with restricted privs
but drop everything we do not need for normal operations
https://stackoverflow.com/questions/3357737/dropping-root-privileges
Any thoughts/solutions to this?
/nimSocks/client.nim(34, 19) template/generic instantiation of `async` from here
/nimSocks/client.nim(53, 41) Error: type mismatch: got <UserPasswordStatus, byte>
but expected one of:
proc `==`[Enum: enum](x, y: Enum): bool
first type mismatch at position: 2
required type for y: Enum: enum
but expression 'byte(SUCCEEDED)' is of type: byte
35 other mismatching symbols have been suppressed; compile with --showAllMismatches:on to see them
expression: socksUserPasswordResponse.status == byte(SUCCEEDED)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.