前言
你需要内网穿透吗?
可能你还不太清楚什么是内网穿透,我们换个名词
如何让两台不相邻网络中的设备互相通信?
如果我们两台设备都在外网上,那么可以直接通信
如果有一台在外网上,还是可以通讯
如果两台都在内网呢?
为了应对复杂的网络环境,P2P内网穿透应运而生
其中知名度较高的付费软硬件有Teamviewer 向日葵 nat123 花生壳 蒲公英路由器
比较知名的免费软件有ngrok N2N
今天为大家介绍的就是其中的后起之秀,国人出品的FCN p2p内网穿透工具
GitHub项目地址 https://github.com/boywhp/fcn 全中文介绍哦!
应用场景
比如:
我们在家里有一块树莓派做nas,上面存了了一些电影和图片,我们急需几个图片,家里的宽带也没有外网权限,怎么办?
公司内网有一台服务器需要上传一些文件,但现在不能立刻回到公司,办公室用的也是普通宽带,怎么办?
FCN支持以下几种应用场景
1.管理远程主机
2.接入远程局域网
3.远程客户演示
4.远程虚拟组网
5.网络代理池
6.Lan2Lan连接两个局域网
实际应用
本次我以第一种应用场景来演示FCN的使用,管理远程主机
模拟环境
我的电脑win10为客户段 树莓派为服务端
需求,能完全访问树莓派
注意,服务端并不需要外网IP,仅仅是作为安全验证的存在,选在线时间最长的那个为服务端即可
新建一个新的fcn网络
fcn_win.exe -服务器 -用户 -新建
输入 用户名 -密码 -确定 (这里的用户名仅仅是为了生成模版文件的hash值,后面我的用户名改用了SERVER01)
点击导出 1.txt
记事本复制第3列的密码hash
打开 linux-embeded/fcn.conf模版文件
替换psk
去除注释 修改uid [uid]=FCN_6501
去除注释 修改name
此时文件内容为
[psk]=ce5c7cfd1c1b8becdc4c60f11a2480b75934a5e00192fe39af4d748b52d60df7
[uid]=FCN_6501
[name]=SERVER01
建立服务端
将 linux/fcn_x64 和 fcn.conf上传至服务器同一目录下
root@kali:~/桌面/1# lsfcn.conf fcn_x64
给予执行权限 chmod +x fcn_x64
运行
root@kali:~/桌面/1# ./fcn_x64 FCN NAT NIC:eth0FCN SERVER:s1.xfconnect.com
FCN UDP LINK
查看网络信息
root@kali:~/桌面/1# ip addr3: fcn_eth0:
mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 10.10.0.1/24 scope global fcn_eth0
valid_lft forever preferred_lft forever
inet6 fe80::b558:37ac:7a0c:9676/64 scope link flags 800
valid_lft forever preferred_lft forever
服务端准备完毕
客户端
在需要远程时,运行fcn_win.exe客户端-添加-fcn,填写跟上面一样的参数
点击连接,第一次运行会提示安装驱动,确认安装,左下角会显示当前连接方式和IP
成功连接对方
验证
探测对方22端口,确认开启
[TNT-PC] ➤ telnet 10.10.0.1 22Trying 10.10.0.1…
Connected to 10.10.0.1.
Escape character is ‘^]’.
SSH-2.0-OpenSSH_7.4p1 Debian-10Protocol mismatch.
Connection closed by foreign host.
ping
ping 10.10.0.1
正在 Ping 10.10.0.1 具有 32 字节的数据:
来自 10.10.0.1 的回复: 字节=32 时间<1ms TTL=64来自 10.10.0.1 的回复: 字节=32 时间=1ms TTL=6410.10.0.1 的 Ping 统计信息:
数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 1ms,平均 = 0ms
完全OK
总结
这仅仅是FCN最简单最常用的一种使用方式,由于FCN是国人开发,因此文档全部都是中文的,使用简单方便。
感谢你看完本文,希望对你有帮助!