[{"data":1,"prerenderedAt":377},["ShallowReactive",2],{"project-18236125":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":41,"post_text":43,"what":44,"said":61,"maker_in_thread":176,"shape":185,"grid":190,"attempts":332,"same_week":340,"maker_shows":39,"maker_hidden":369,"reader_version":370,"card":371},"18236125","Mole","an open source tool to easily create ssh tunnels","title","Show HN: Mole – an open source tool to easily create ssh tunnels","https:\u002F\u002Fdavrodpin.github.io\u002Fmole\u002F","davrodpin.github.io","davrodpin",1539750487,2018,142,60,293,2155,14,"notable","dev_tools","ssh tunneling","cli",[24,25,26,27],"ssh tunnel","port forwarding","ssh","mole","mixed",-0.276,{"positive":31,"neutral":32,"mixed":33,"critical":32},3,11,0,25,{"idea":36,"execution":38,"design":40},{"positive":37,"critical":32},2,{"positive":39,"critical":33},1,{"positive":33,"critical":33},[31,39,33,33,33,33,33,33,33,33,33,31,39,31,33,31,39,39,33,39,31,33,33,39,39,39,31,33,39,31,31,33,42,33,33,33,33,31,42,39],5,null,{"problem":45,"audience":43,"pricing":43,"motivation":43,"time_to_build":43,"stack":57,"openness":58,"stage":59,"team_size":60},{"value":46,"source":47,"evidence":48},"Creating SSH tunnels with the ssh -L syntax is hard to remember","commenter",[49,53],{"id":50,"by":51,"text":52},"18237562","justaaron","because it is very difficult to type this instead? ssh -L 21234:localhost:1234 bob@server.com I will confess that I googled it numerous times until one day I realized how silly…",{"id":54,"by":55,"text":56},"18236819","Samin100","This is a fantastic tool! I've always had to reference a markdown file with SSH tunnel syntax whenever I wanted to create one. I can see myself using this quite a bit in the…",[],"open_source","launched","unknown",{"praise":62,"objections":81,"requests":119,"questions":135,"alternatives":141},[63,71],{"value":64,"source":47,"evidence":65},"Easier syntax than ssh -L for creating tunnels",[66,67],{"id":54,"by":55,"text":56},{"id":68,"by":69,"text":70},"18236875","dest","Very nice. I'd consider pinging the guys of OpenBSD to suggest upstreaming this interesting, user friendly, syntax into SSH itself.",{"value":72,"source":47,"evidence":73},"Can select a local port automatically, avoiding port clashes",[74,78],{"id":75,"by":76,"text":77},"18252468","dalore","It can bind to a local available port without having to specify what it is. Stops port clashes.",{"id":79,"by":11,"text":80},"18242289","The tool can select the local port on your behalf. It also has aliases to store configuration that user usually use, but that is comparable to the ssh config file.",[82,97,108],{"value":83,"source":47,"evidence":84},"Syntax difference from ssh -L is small and does not add much",[85,89,93],{"id":86,"by":87,"text":88},"18237145","Symbiote","Here are the example commands, with the SSH equivalent. There's a small syntax difference, but otherwise I don't think this tool adds much. ``` $ mole -local 127.0.0.1:3306…",{"id":90,"by":91,"text":92},"18237076","viraptor","Is the syntax difference really that interesting? It's ``` mole -local 127.0.0.1:3306 -remote 127.0.0.1:3306 -server example@172.12.0.100 ``` vs ``` ssh -L 3306:127.0.0.1:3306…",{"id":94,"by":95,"text":96},"18237000","kstenerud","I'm not sure if I missed something? Normally I use -L syntax for tunneling (-L local_port:remote_addr:remote_port). Does this tool do more?",{"value":98,"source":47,"evidence":99},"Autossh already restarts broken tunnels",[100,104],{"id":101,"by":102,"text":103},"18237676","jmngomes","This is cool, but it's not very clear to me what is the benefit of using this over autossh. autossh detects and restarts broken tunnels and uses aliases and tidy config files:…",{"id":105,"by":106,"text":107},"18238595","earthscienceman","Uh. I run an autossh program on the host in question. It auto-runs ssh connections when they drop, including tunnels.…",{"value":109,"source":47,"evidence":110},"Ssh config file already stores tunnel aliases",[111,115],{"id":112,"by":113,"text":114},"18245993","johntash","I don't think you missed anything.. I'm pretty sure I've seen a few similar apps like this on HN, but I don't really understand the draw of them over just using ssh's built in…",{"id":116,"by":117,"text":118},"18240166","peterwwillis","You can do the same thing with the ~\u002F.ssh\u002Fconfig file. Add a configuration block for the host you want to connect to with the ports you want to map. I agree that an official user…",[120],{"value":121,"source":47,"evidence":122},"Support reverse and dynamic (-R, -D) forwarding",[123,127,131],{"id":124,"by":125,"text":126},"18238342","dschep","What about reverse & dynamic ssh tunnels? (ssh -R or ssh -D instead of ssh -L)",{"id":128,"by":129,"text":130},"18237197","darrenf","mole also doesn't seem to support DynamicForward for creating SOCKS proxies. Mind you, I'm not sure how it could improve on native ssh for concision: ``` ssh -D *:1080 work ```…",{"id":132,"by":133,"text":134},"18240262","vectorEQ","there's multiple ways to make tunnels in ssh. -L is one of them (local forwarding). basically, local, remote and dynamic forwarding are possible. there's some interesting uses…",[136],{"value":137,"source":47,"evidence":138},"What is the benefit over ssh or autossh?",[139,140],{"id":94,"by":95,"text":96},{"id":101,"by":102,"text":103},[142,150,155,162,169],{"value":143,"source":47,"evidence":144},"autossh",[145,146],{"id":101,"by":102,"text":103},{"id":147,"by":148,"text":149},"18239765","loeg","This is maybe a nicer syntax around autossh, which just uses the ssh. And the functionality is ssh's '-R' flag.",{"value":151,"source":47,"evidence":152},"Native ssh -L, -R, -D forwarding",[153,154],{"id":86,"by":87,"text":88},{"id":50,"by":51,"text":52},{"value":156,"source":47,"evidence":157},"spiped",[158],{"id":159,"by":160,"text":161},"18237367","cperciva","For many purposes, users may want to consider spiped as a simpler and more reliable alternative.",{"value":163,"source":47,"evidence":164},"localtunnel",[165],{"id":166,"by":167,"text":168},"18238459","peterburkimsher","For web services, an alternative that doesn't require your own server is localtunnel: https:\u002F\u002Flocaltunnel.github.io\u002Fwww\u002F",{"value":170,"source":47,"evidence":171},"ZeroTier",[172],{"id":173,"by":174,"text":175},"18239417","fiatjaf","If you like this, but think that SSH tunnels are too complicated, I must suggest that you try https:\u002F\u002Fwww.zerotier.com\u002F. ZeroTier solves all your networking needs and much more,…",{"comments":42,"answered":39,"key":177},[178,181,182],{"id":179,"text":180},"18242341","Thank you for the feedback. Much appreciated. Someone else opened an issue requesting that: https:\u002F\u002Fgithub.com\u002Fdavrodpin\u002Fmole\u002Fissues\u002F22",{"id":79,"text":80},{"id":183,"text":184},"18242847","The tool can select the local port on your behalf. One less thing to configure :)",{"commenters":186,"max_depth":187,"maker_replies":42,"first_comment_mins":188,"lifespan_hours":189},44,9,163,54,[191,193,197,201,203,207,210,213,215,218,220,222,225,228,231,234,237,240,244,245,246,248,249,250,252,253,256,259,260,261,262,265,268,270,273,275,276,278,279,283,285,287,291,293,294,298,299,303,306,309,311,313,315,317,320,323,326,327,328,329],[94,33,31,192,95,33],"project\u002Fneutral\u002Fidea",[194,33,39,195,196,33],"18237217","project\u002Fcritical\u002Fidea","8fingerlouie",[198,33,33,199,200,33],"18237234","other\u002Fneutral\u002Fnone","therein",[202,33,33,199,196,33],"18237256",[204,33,33,205,206,33],"18237292","commenter\u002Fneutral\u002Fnone","deivid",[208,33,33,199,209,33],"18237309","satiani",[211,33,33,199,212,33],"18237753","dspillett",[214,33,33,199,196,33],"18238012",[216,33,33,199,217,33],"18238105","jpitz",[219,33,33,199,212,33],"18255686",[221,33,33,205,209,33],"18238173",[223,33,33,199,224,33],"18238618","nsomaru",[226,33,33,199,227,33],"18237384","maeln",[229,33,33,199,230,33],"18238002","lkuty",[232,33,33,199,233,33],"18240157","Filligree",[235,33,33,199,236,33],"18237528","Daviey",[238,33,33,199,239,33],"18241602","craftyguy",[241,33,31,242,243,33],"18238327","project\u002Fneutral\u002Fexecution","tjoff",[105,33,39,195,106,33],[132,33,31,192,133,33],[179,33,33,247,11,39],"maker\u002Fneutral\u002Fnone",[79,33,33,247,11,39],[112,33,39,195,113,33],[75,33,42,251,76,33],"project\u002Fpositive\u002Fexecution",[101,39,39,195,102,33],[254,39,39,195,255,33],"18239122","alexeiz",[257,39,31,258,148,33],"18239786","project\u002Fneutral\u002Fdesign",[183,39,33,247,11,39],[86,37,39,195,87,33],[128,37,31,192,129,33],[263,37,31,264,87,33],"18237243","project\u002Fneutral\u002Fnone",[266,37,33,199,267,33],"18238479","Bluecobra",[269,37,33,199,148,33],"18239794",[271,37,33,199,272,33],"18247272","YouKnowBetter",[274,37,33,242,11,39],"18242956",[173,31,39,195,174,33],[166,277,39,195,167,33],4,[50,42,39,195,51,33],[280,281,31,242,282,33],"18239993",6,"mitchtbaum",[284,281,31,242,117,33],"18240124",[286,281,33,242,11,39],"18242866",[288,289,33,199,290,33],"18241321",7,"donatj",[159,292,39,195,160,33],8,[147,187,31,192,148,33],[295,296,33,199,297,33],"18236871",10,"leowoo91",[124,32,31,192,125,33],[300,301,33,199,302,33],"18241326",12,"mbrumlow",[304,301,33,199,305,33],"18242253","deathanatos",[68,307,42,308,69,33],13,"project\u002Fpositive\u002Fidea",[310,307,33,205,196,33],"18237236",[312,307,33,205,69,33],"18238116",[314,307,33,205,196,33],"18238466",[316,307,33,205,69,33],"18239831",[318,307,33,205,319,33],"18242111","melq",[321,307,33,205,322,33],"18243715","colemickens",[324,307,33,199,325,33],"18242122","ryall",[116,307,31,192,117,33],[54,18,42,308,55,33],[90,18,39,195,91,33],[330,18,33,199,331,33],"18239698","goliatone",[333,334,337],{"id":4,"t":12,"points":14,"comments":15},{"id":335,"t":336,"points":31,"comments":33},"20260853",1561355799,{"id":338,"t":339,"points":37,"comments":33},"24162733",1597436255,[341,346,350,355,359,364],{"id":342,"name":343,"points":344,"category":345},"18219960","Polar",382,"productivity",{"id":347,"name":348,"points":349,"category":20},"18193264","Muze",361,{"id":351,"name":352,"points":353,"category":354},"18211251","TensorFlow-Course",327,"learning_science",{"id":356,"name":357,"points":358,"category":354},"18219296","Physically Based Rendering",297,{"id":360,"name":361,"points":362,"category":363},"18240755","Coffee Chat",182,"consumer_social",{"id":365,"name":366,"points":367,"category":368},"18215106","Lisp",152,"languages",false,"v2",{"id":372,"name":5,"line":6,"ai":369,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":373,"top":18,"kw":374,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":375,"url":9,"mix":376,"praise":64,"objection":83,"sub":21},18236125,-0.28,[24,25,26,27],"3100000000031303110130011130133050000351",[31,32,33,32],1794036570597]