
free connect your private network from anywhere
fcn[free connect] is a foolproof one-click tool for accessing private networks, consisting of the server side and the client side
fcn uses fcn public data servers and data encryption technology to virtually connect user clients to the server's private network
fcn = fcn_server + fcn_client
Note: Versions prior to FCN V3.0 have a BUG when switching servers. FCN recently changed server IPs, which may cause failure to connect to the server. Please restart the server or update the server version
FCN QQ discussion group: 592512533 FCN forum http://bbs.xfconnect.com
download FCN V3.0 FULL Baidu Netdisk https://pan.baidu.com/s/1pLsonhh
download FCN V3.0 binary https://github.com/boywhp/fcn/releases/download/V3.0/FCN_V3.0.zip
download FCN V3.0 embedded version https://github.com/boywhp/fcn/releases/download/V3.0/linux-embeded.zip
FCN supported operating system platforms
Tested and verified on Linux openwrt/lede WR703N, Asus N14U, Phicomm K2/K2P Openwrt/Padavan; openwrt/lede requires manual installation of the libopenssl package
Tested and verified on Linux arm/armbian Raspberry Pi 3, Orange Pi


FCN's design philosophy is to provide a complete network access solution with the simplest interface operations. See the PPT for use case introductions
http://pan.baidu.com/s/1o8r2w7g
FCN Lan2Lan introduction
http://weibo.com/ttarticle/p/show?id=2309404124768579250283
First configure the fcn.conf configuration file. Note that the current test accounts are FCN_0000-FCN_9999, each account is rate-limited to 100KB/s [no limit once peer-to-peer communication succeeds]
Please randomly pick a test account and set your own unique server name to prevent account conflicts
tun driver mode NAT requires ROOT privileges to run; in application-layer NAT mode, ping packets cannot be sent or received without ROOT privileges
./fcn_x64 # 应用层NAT模式
sudo ./fcn_x64 # tun驱动NAT模式
Note: The FCN server can only run one instance per configuration. After changing the configuration, you need to kill the old process, otherwise an error will be reported
#!/bin/sh
/home/pi/fcn-arm
Add execute permission: chmod +x fcn.sh
Create a symbolic link: ln -s /home/pi/your_fcn_dir/fcn.sh /etc/init.d/fcn
Add to auto-start: update-rc.d fcn defaults 99
Add a server on the main interface, fill in the corresponding connection parameters, and connect. Once successful, the windows client is connected to the server's corresponding LAN. The client/server parameter correspondence is as follows

Note: The virtual NIC driver will be installed automatically on first connection, and user confirmation is required
The Linux client and server functions are integrated into the same executable. The program decides whether to start client or server functions via command-line arguments. The most common client parameters are as follows:
sudo ./fcn --uid FCN_0001 --svr SVR0001 --psk 'PASSWORD'
The Linux command-line client supports the following parameters:
fcn uses digital certificates, TLS and data encryption technology, and peer-to-peer communication technology. User network data is encrypted throughout the entire session, and the session key is automatically updated every 30 minutes or so, ensuring that user data cannot be intercepted, decrypted, or subjected to man-in-the-middle attacks.
fcn public servers do not collect any user network data and also support forced peer-to-peer communication of user network data. In the future, we plan to open user encryption interfaces so that users can implement custom end-to-end private encryption.
| Operating system | File name |
|---|
| Windows XP and above | windows/fcn_win.exe |
| Linux 64bit | linux/fcn_x64 |
| Linux 32bit | linux/fcn_x86 |
| Linux router | linux-embedded/fcn_mips/mipsel/arm/armhf_uclib |
| Linux arm | linux-embedded/fcn-arm/armbian |
| Use case | Description | Demonstration |
|---|
| Manage remote hosts | Remotely manage any internet-connected machine without a public IP | http://pan.baidu.com/s/1slpu4f7 |
| Remote LAN access | Access remote LAN segments with one click | http://pan.baidu.com/s/1gfP7ZCv |
| Remote customer demo | The FCN server supports IP and port access restrictions, allowing temporary limited network access | http://pan.baidu.com/s/1qXND5bY |
| Lan2Lan | Proxy local LAN machines through the FCN client to access remote LANs | http://pan.baidu.com/s/1slM5N6P |
| Remote virtual networking | Build a virtual LAN over the internet through the FCN virtual NIC | -- |
| Network proxy pool | FCN link aggregation connects to multiple servers at the same time, with the exit IP switching randomly | -- |
| Configuration key | Description |
|---|
| [uid] | FCN_[0001-9999] 8-character FCN ID |
| [name] | Server name; it is recommended to fill in a meaningful name |
| [psk] | Administrator account password hash or plaintext password; hash is recommended |
| [cipher] | Specify the encryption algorithm 【aes-256-cfb/aes-128-cfb/chacha20】, default is aes-256-cfb |
| [authfile] | User list file name; obtain the user list file using fcn_win.exe |
| [udp] | 0/1, set the data packet communication type 0:TCP 1:UDP; it is recommended to leave blank and use UDP |
| [nat_nic] | Server NIC name to connect to after virtual access; it is recommended to leave blank |
| [dhcp_ip/dhcp_mask/dhcp_dns] | DHCP subnet and DHCP DNS server address after virtual access; it is recommended to leave blank |
| [uport] | Custom UDP communication port, default 5000, custom [1000-2000]; it is recommended to leave blank |
| [tport] | Custom TCP communication port, default 8000, custom [1000-2000]; it is recommended to leave blank |
| [pport] | Custom P2P communication port; do not fill in unless the server supports port mapping |
| [fcn_svr] | Set the public FCN server address, default s1.xfconnect.com; it is recommended to leave blank |
| [notun] | 0/1, 0: automatic 1: force application-layer NAT; it is recommended to leave blank |
| Parameter | Description |
|---|
| --uid | Corresponds to the server-side user ID parameter |
| --psk | Corresponds to the server-side user connection password parameter |
| --svr | Corresponds to the server-side server name |
| --usr | Corresponds to the server-side username |
| --host | FCN public server address, default s1.xfconnect.com; it is recommended to fill in the corresponding IP address directly |
| --tun | Specify the client virtual NIC name, default tun_fcn; recommended when running multiple FCN clients |
| --tunip | Manually specify the client virtual NIC IP address |
| --tcp | Use TCP links; it is recommended to leave blank and use UDP |
| --vpn | Whether to enable global routing; by default, connects to the server-side NIC subnet; fill in as needed |
| --fwd | Enable automatic forwarding of server-side LAN data to the virtual NIC; enable as needed. |
| --nolog | FCN server does not record logs; by default, logging to the fcn.log file is enabled |
| --nodaemon | FCN server runs in console mode; by default, it runs in the background. |