HackerTrans
TopNewTrendsCommentsPastAskShowJobs

fiddyschmitt

no profile record

Submissions

Show HN: Tunneling Through S3 Buckets

github.com
2 points·by fiddyschmitt·8 bulan yang lalu·0 comments

Show HN: Bypassing firewalls using a file tunnel

github.com
3 points·by fiddyschmitt·2 tahun yang lalu·1 comments

Show HN: Tunnelling TCP through a file

github.com
180 points·by fiddyschmitt·2 tahun yang lalu·37 comments

Show HN: Multi-monitor KVM using just a USB switch

github.com
397 points·by fiddyschmitt·2 tahun yang lalu·181 comments

comments

fiddyschmitt
·2 bulan yang lalu·discuss
:) yes. For Windows, that's exactly what SimpleKVM does

https://github.com/fiddyschmitt/SimpleKVM
fiddyschmitt
·2 bulan yang lalu·discuss
You could use SimpleKVM to detect the USB change, and trigger the monitor input change.

https://github.com/fiddyschmitt/SimpleKVM
fiddyschmitt
·2 bulan yang lalu·discuss
For Windows, I wrote SimpleKVM. I'm proud of the little monitor diagram it shows. Keen to hear your thoughts if you get to try it.

https://github.com/fiddyschmitt/SimpleKVM
fiddyschmitt
·2 bulan yang lalu·discuss
For Windows:

https://github.com/fiddyschmitt/SimpleKVM

If you only have two computers, you just need one instance of SimpleKVM to switch between the computers.
fiddyschmitt
·2 bulan yang lalu·discuss
Nice write-up! I wrote https://github.com/fiddyschmitt/SimpleKVM which makes the process easy on Windows.

As others have mentioned, you can use a cheap USB switch if you don't have an in-built KVM.

DDC/CI is quite interesting. Most OEMs seem to implement it just fine. But some (like LG) need special handling.
fiddyschmitt
·2 tahun yang lalu·discuss
Haha!
fiddyschmitt
·2 tahun yang lalu·discuss
That's awesome!
fiddyschmitt
·2 tahun yang lalu·discuss
Cool. I think rdp2tcp uses virtual channels for tunneling:

https://rdp2tcp.sourceforge.net/
fiddyschmitt
·2 tahun yang lalu·discuss
Woah!
fiddyschmitt
·2 tahun yang lalu·discuss
Yes exactly. One file in each direction made arbitration easier.

In the future I will implement a single file to handle both directions.
fiddyschmitt
·2 tahun yang lalu·discuss
Hi Andrew, there's just one writer (which can tunnel multiple TCP connections).

Arbitration was indeed one of the trickiest bits. Originally I pre-reallocated the full file size (10 MB). Then used an integer at the beginning of the file to signal to the other side that a block was ready. The other side repeatedly read that int, and read the corresponding part of the file. But writing twice (once for the data, once for the int) had a significant performance impact.

In the end, what worked best was not pre-allocating the file. Rather letting the file grow whenever the writer writes to it. The reader knows when data is available by doing a PeekChar() in a tight loop. It's surprisingly fast, and accurately reflects the state of the file.
fiddyschmitt
·2 tahun yang lalu·discuss
Hi Bawolff! Yes that's a great combo. I guess File Tunnel provides a couple of things that makes the tunnel maintenance a bit easier.

1. It gracefully supports each side of the tunnel turning on and off.

2. It accepts any number of clients, and forwards them through the tunnel.

3. It recycles the shared file.
fiddyschmitt
·2 tahun yang lalu·discuss
Thanks J :) Absolutely! I did try various flags to optimise performance. For CreateFile (which in .NET is wrapped by the FileStream class) I tried FILE_WRITE_THROUGH (which is FileOptions.WriteThrough in .NET), and found it impacted performance quite a lot.

The key to high performance as you rightly pointed out was preventing flushing. In the end, what worked best was reducing the number of writes to disk (which is the bottleneck). I did that by buffering 10-50 ms worth of TCP data, coupled with only flushing explicitly (using a large buffer so that neither BinaryWriter or FileStream flush automatically).
fiddyschmitt
·2 tahun yang lalu·discuss
Nice! It's so good when you can cobble together various tools to achieve something like that.
fiddyschmitt
·2 tahun yang lalu·discuss
Thanks! Even just one instance running on Windows can be used for a Windows+Linux setup
fiddyschmitt
·2 tahun yang lalu·discuss
Correct
fiddyschmitt
·2 tahun yang lalu·discuss
Nice!!
fiddyschmitt
·2 tahun yang lalu·discuss
Yes I know exactly what you mean - I've experienced the same. I haven't tried a mechanical one before. I'll have to try it out
fiddyschmitt
·2 tahun yang lalu·discuss
Yep HDMI works well. It also works on DisplayPort, DisplayPort Mini, VGA and DVI.
fiddyschmitt
·2 tahun yang lalu·discuss
For sure :)