Skip to content

Document Snowflake's FreeBSD Package/Port

we just introduced Snowflake to the FreeBSD's ports tree:

today version v2.0.1 was ported to the ports collection, used to build official packages for FreeBSD. now we should have official packages available to install Snowflake ]=)

there are 3 different binaries shipping with its package:

snowflake
snowflake-client
snowflake-proxy

FreeBSD uses pkg as its official/main packages manager. it provides an interface for manipulating packages: registering, adding, removing and upgrading packages. after installing a package, we can be presented a message containing few notes about a particular software.

we worked out to present intuitive instructions to setup following scenarios:

  • standalone proxy;
  • client transport plugin,
  • server transport plugin.

besides Snowflake's source code and its documentations, the following material was used to build the port:

tpo/core/tor#21453 (closed)

tpo/core/tor#24203 (closed)

on top of that, the Snowflake Bridge Survival Guide was also pretty handy

by running the standalone proxy on FreeBSD, this would be an output of its log file:

2021/11/14 21:50:20 starting
ice ERROR: 2021/11/14 21:50:20 Failed to enable mDNS, continuing in mDNS disabled mode: (listen udp4 224.0.0.0:5353: bind: address already in use)
2021/11/14 21:50:20 WebRTC: Created offer
2021/11/14 21:50:20 WebRTC: Set local description
2021/11/14 21:50:22 Offer: {" ~scrubbed~ "}
2021/11/14 21:50:54 NAT type: restricted
ice ERROR: 2021/11/14 21:53:37 Failed to enable mDNS, continuing in mDNS disabled mode: (listen udp4 224.0.0.0:5353: bind: address already in use)
2021/11/14 21:53:37 sdp offer successfully received.
2021/11/14 21:53:37 Generating answer...
2021/11/14 21:53:38 OnDataChannel
2021/11/14 21:53:38 Connection successful.
2021/11/14 21:53:38 OnOpen channel
2021/11/14 21:53:39 connected to relay
2021/11/14 21:54:22 OnClose channel
2021/11/14 21:54:22 Traffic throughput (up|down): 574 KB|67 KB -- (249 OnMessages, 575 Sends, over 43 seconds)
2021/11/14 21:54:22 copy loop ended
2021/11/14 21:54:22 datachannelHandler ends

there will be packages for different versions and architectures available. should anyone wants to test it right away (once the package is available):

# pkg update -f
# pkg install -U snowflake-tor
# service snowflake onestart
Edited by Gaba