TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: A WireGuard Powered Remote Shell

170 pointsby dpeckettabout 1 year ago
Time to announce Noisy Sockets Shell, the first in a series of WireGuard powered applications I&#x27;m working on. Noisy Sockets Shell is an SSH replacement that uses WireGuard for authentication and encryption, and WebSockets for communication.<p>CLI and browser client available.

12 comments

dpeckettabout 1 year ago
Thanks everyone for the wonderful Sunday afternoon surprise, I&#x27;d posted this originally on a Friday and I guess a lot of us were out watching the polar lights. This was a fun project to work on.<p>Right now it doesn&#x27;t support a multi-user daemon mode, kind of similar to mosh. But in the future because the server is able to cryptographically verify the source of connections, it&#x27;s only a matter of time until I implement something akin to a per user `~&#x2F;ssh&#x2F;authorized_keys`.<p>With noisysockets I&#x27;m effectively building out a suite of WireGuard powered &quot;apps&quot;. Which are small, unprivileged, programs you can attach to a WireGuard network and will act as virtual peers.
codetrotterabout 1 year ago
What does this bring over binding sshd to the Wireguard interface address?<p>That’s what I do currently with some of my hosts.
评论 #40336042 未加载
评论 #40334648 未加载
MuffinFlavoredabout 1 year ago
Why does the client have a listen port?<p><pre><code> nsh config init -c server.yaml -n server --listen-port=51820 --ip=172.21.248.1 nsh config init -c client.yaml -n client --listen-port=51821 --ip=172.21.248.2 </code></pre> Typically, servers have easiest to configure NAT&#x2F;firewall&#x2F;port forwarding and clients (to me) are basically thought of as &quot;not going to get through their router&#x2F;firewall configuration no matter what&quot;.
评论 #40335185 未加载
josephcsibleabout 1 year ago
Would you consider dual-licensing this under a FOSS license like the AGPLv3? That&#x27;s strong enough copyleft that I think you&#x27;ll be safe from what you&#x27;re trying to avoid with your current nonstandard license.
评论 #40337132 未加载
评论 #40336964 未加载
efitzabout 1 year ago
Pretty cool, but the license is pretty toxic to commercial adoption. I would suggest also licensing under MIT, BSD or Apache if you want this to ever achieve any widespread usage. Unfortunately you are competing against SSH which has a mature ecosystem so if you want widespread usage then you need to make it attractive legally as well as technologically.
dathinababout 1 year ago
One surprising tricky part of encrypting &quot;live input&quot; protocols (like typing send over a shell) is that just encrypting them is not enough.<p>You can use timing of packages send to e.g. extract passwords.<p>(hence why SSH clients normally take additional precautions)
zx2c4about 1 year ago
Why fork&#x2F;copy&amp;paste wireguard-go source code instead of using wireguard-go&#x27;s existing netstack package? Couldn&#x27;t you help improve instead?
louwrentiusabout 1 year ago
Can you explain which problem this tool &#x2F; these tools solve? I’m not sure I understand the purpose.
评论 #40335621 未加载
kzrdudeabout 1 year ago
To what extent does this replace mosh? <a href="https:&#x2F;&#x2F;mosh.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mosh.org&#x2F;</a><p>It seems like it could do some of the same usecases.
评论 #40335843 未加载
评论 #40335781 未加载
CapeTheoryabout 1 year ago
Looks like you created a bespoke license for your tool, which is your perogative but also means many people won&#x27;t even consider using it.
评论 #40334297 未加载
评论 #40335164 未加载
评论 #40335045 未加载
0xbadcafebeeabout 1 year ago
If I can make a rough attempt at summarizing this: this is basically a PoC of a remote shell using the Noise Protocol Framework[1] with implementation Noisy Sockets[2] to effectively use UDP to tunnel a connection from one application to another directly and securely. If you squint at it, Noisy Sockets is basically like TCP+TLS, but UDP+SomeOtherCrypto. The library is a drop-in replacement for the Go &#x27;net&#x27; library. All the protocols (including tcp&#x2F;udp) are implemented in userspace.<p>This has some really interesting use cases (like not having to use HTTPS to get a bidirectional secure communication channel... not being limited by firewalls... not requiring an OS to upgrade its tcp&#x2F;ip stack...). Normally I&#x27;m a pessimist but I kinda like this thing (the library, not the remote shell). Just needs a less clunky way to discover and route to services, a simpler way to configure a connection to the remote host, and extensible authentication&#x2F;authorization (public keys pose management problems and don&#x27;t fit some use cases).<p>That custom license may stop people from using the remote shell. Luckily the library is just MPL 2.0<p>[1] <a href="https:&#x2F;&#x2F;noiseprotocol.org&#x2F;noise.html#introduction" rel="nofollow">https:&#x2F;&#x2F;noiseprotocol.org&#x2F;noise.html#introduction</a> [2] <a href="https:&#x2F;&#x2F;github.com&#x2F;noisysockets&#x2F;noisysockets">https:&#x2F;&#x2F;github.com&#x2F;noisysockets&#x2F;noisysockets</a>
评论 #40335815 未加载
评论 #40335048 未加载
deadbabeabout 1 year ago
Hello, it’s my understanding that WireGuard isn’t very secure, but it is very fast. Is that correct?
评论 #40336314 未加载
评论 #40338680 未加载
评论 #40335740 未加载
评论 #40335658 未加载