• 欢迎访问南思工作室官方站点.
  • 文章内容如有失效请文章下留言,我们看到后会第一时间处理。
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏南思工作室吧。
  • 图片服务器和主服务器都挂了CDN,如有异常,请留言,我们会尽快处理。

免费异地组网工具

源码 nansi 3个月前 (06-02) 345次浏览 0个评论
文章目录[隐藏]

前言

之前用过蒲公英,可惜收费,免费版本又限制太多,今天逛 Github,突然发现了一大神的项目,FCN!当然,FCN 也需要花钱,因为你得有台服务器,或者你花钱买作者或者第三方提供的服务即可,比蒲公英的限制少太多了,好用。

Git 项目地址https://github.com/boywhp/fcn

软件介绍

FCN[free connect]是一款傻瓜式的一键接入私有网络的工具, fcn 利用公共服务器以及数据加密技术实现:

在免公网 IP 环境下,在任意联网机器上透明接入服务端所在局域网网段

FCN = 用户服务端 <— FCN 公共服务器 — > 用户客户端

FCN 支持操作系统平台

操作系统 文件名
Windows 操作系统 windows/fcn_win.exe
Linux 操作系统 linux/fcn_x64/x86
Linux 路由器 linux-embedded/lede 或 openwrt/fcn_mips/mipsel/arm/armhf
Linux arm linux-embedded/fcn-arm/armbian
Android Fcn.apk

Linux openwrt/lede WR703N、华硕 N14U、斐讯 K2/K2P Openwrt/Padavan 实测通过,openwrt/lede 需自行安装 libopenssl 包

Linux arm/armbian 树莓派 3、Orange Pi 实测通过。

使用教程

首先创建 FCN 服务端

免费异地组网工具
运行客户端从互联网连接到 FCN 服务端局域网

免费异地组网工具
FCN 接入原理示意图

免费异地组网工具

FCN 常用使用场景

FCN 设计理念是, 用最简洁的界面操作, 提供一套完整的网络接入解决方案, 使用场景介绍见 PPT

http://pan.baidu.com/s/1o8r2w7g

FCN Lan2Lan 简介

http://weibo.com/ttarticle/p/show?id=2309404124768579250283

使用场景 描述 实际操作
管理远程主机 无需公网 IP 对任意联网机器进行远程管理 http://pan.baidu.com/s/1slpu4f7
远程接入 Lan 一键访问远程局域网网段 http://pan.baidu.com/s/1gfP7ZCv
远程客户演示 FCN 服务端支持 IP 及端口访问限制, 可临时提供有限网络访问权限 http://pan.baidu.com/s/1qXND5bY
Lan2Lan 通过 FCN 客户端代理本地局域网机器访问远程局域网 http://pan.baidu.com/s/1slM5N6P
远程虚拟组网 通过 FCN 虚拟网卡透过互联网组建虚拟局域网
网络代理池 FCN 链路聚合同时连接多个服务端, 出口 IP 随机切换

3. FCN 使用

3.1 运行客户服务端

首先配置 fcn.conf 配置文件, 注意目前测试帐户 FCN_0000-FCN_9999, 每个帐户限速 100KB/s,每日流量配额 150M[点对点通信成功后无限制],请用户随机挑选测试帐户,并且设置自己的唯一服务器名,以防止帐户冲突

配置键值 描述
[uid] 你的付费帐户名或者 FCN_[0001-9999] 8 字符 FCN ID
[uic] 你的付费帐户 8 位识别码
[name] 服务器名,建议填写一个有意义的名称
[psk] 管理员账号密码 hash 或者明文密码,建议使用 hash
[cipher] 指定加密算法【aes-256-cfb/aes-128-cfb/chacha20】,默认 aes-256-cfb
[authfile] 用户列表文件名,用户列表文件使用 fcn_win.exe 获取
[udp] 0/1, 设置数据包通信类型 0:TCP 1:UDP,建议不填使用 UDP
[nat_nic] 虚拟接入后连接的服务器网卡名, 建议不填
[dhcp_ip/dhcp_mask/dhcp_dns] 虚拟接入后 DHCP 网段, DHCP DNS 服务器地址, 建议不填
[uport] 自定义 udp 通信端口, 默认 5000,自定义[1000-2000], 建议不填
[tport] 自定义 tcp 通信端口, 默认 8000,自定义[1000-2000], 建议不填
[pport] 自定义 p2p 通信端口, 除非服务端可做端口映射,否则不要填
[fcn_svr] 设置公网 FCN 服务器地址,默认 s1.xfconnect.com, 建议不填
[notun] 0/1, 0:自动 1:强制应用层 NAT,建议不填
[portmap] 0/1, 是否开启服务端端口转发, 视情填写
[route] 设置路由网段推送列表, 视情填写

tun 驱动模式 NAT,需要 ROOT 权限运行;应用层 NAT 模式,非 ROOT 权限无法收发 ping 包

./fcn_x64         # 应用层 NAT 模式
sudo ./fcn_x64    # tun 驱动 NAT 模式

注:FCN 服务端一个配置只能运行一个实体, 更改配置后, 需要 kill 掉旧的进程, 否则会提示错误

3.2 开机自启动[Thanks to 榭寄生], debian linux 环境

  • 建立启动脚本 fcn.sh, 内容如下:
#!/bin/sh
/home/pi/fcn-arm
  • 添加执行权限 chmod +x fcn.sh
  • 创建软链接 ln -s /home/pi/your_fcn_dir/fcn.sh /etc/init.d/fcn
  • 添加自启动 update-rc.d fcn defaults 99

3.3 运行 windows 客户端

主界面添加服务器, 填写对应的连接参数, 连接, 成功后, windows 客户端即接入了服务器对应局域网, 客户端/服务端参数对应如下

免费异地组网工具

注:第一次连接时会自动安装虚拟网卡驱动,需用户确认同意

3.4 运行 Linux 客户端

Linux 客户端、服务端功能已整合在同一个可执行中,程序通过命令行参数决定启动客户端或服务端功能,客户端最常见参数如下:

sudo ./fcn --uid FCN_0001 --svr SVR0001 --psk 'PASSWORD'

Linux 命令行客户端支持参数如下:

参数名 描述
–uid 对应服务端用户 ID 参数
–psk 对应服务端用户连接密码参数
–svr 对应服务端服务器名
–usr 对应服务端用户名
–host FCN 公共服务器地址,默认 s1.xfconnect.com,建议直接填写对应的 ip 地址
–tun 指定客户端虚拟网卡的名称,默认 tun_fcn,建议多个 FCN 客户端时填写
–tunip 手工指定客户端虚拟网卡 IP 地址
–tcp 使用 TCP 链路,建议不填,使用 UDP
–vpn 是否开启全局路由,默认接入服务端网卡网段,建议按需填写
–fwd 开启服务端局域网数据自动转发到虚拟网卡,建议按需开启。
–nolog FCN 服务器不记录日志,默认开启日志记录到 fcn.log 文件
–nodaemon FCN 服务器以控制台模式运行,默认后台执行。

4. FCN 安全吗?

FCN 使用了数字证书、tls 以及数据加密技术,点对点通信技术, 用户网络数据全程加密,30 分钟左右自动更新会话密钥,确保用户数据不会被截获解密或者中间人欺骗。

FCN 公网服务器不会收集用户的任何网络数据,同时支持用户网络数据强制点对点通信。后期考虑开放用户加密接口,以便用户实现自定义的端到端私有加密。

4.1 FCN 安全机制

  • FCN 公网服务器和 fcn 客户端之间通过 TLS 证书双向验证确保信道安全
  • FCN 用户服务端每 30 分钟向 fcn 公网服务器请求随机数
  • FCN 公网服务器使用真随机数发生器产生随机数, 并通过 TLS 连接安全传递给用户
  • FCN 客户端/服务端通过 随机码 + UID + PSK 计算出一个会话 key
  • FCN 客户端/服务端使用会话 key 对通信数据包全程 aes256 加密

南思工作室 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:免费异地组网工具
免责声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
喜欢 (3)
关于作者:
南思工作室管理员
发表我的评论
取消评论
表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址