1.网络配置
【注】:
实现基本的wifi上网功能:
- 使用NetworkManager连接wifi
更复杂的上网功能:
- 上内网(内网穿透)
- 科学上网[^1]
1.实现wifi上网
1.1连接有线网
使用指令 nmcli dev status
查看网络状态
【注】:nm为NetworkManager的缩写,cli为client的缩写
[root@localhost ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
wlp1s0 wifi connected TP-LINK_5550
p2p-dev-wlp1s0 wifi-p2p disconnected --
enp2s0f5 ethernet unavailable --
lo loopback unmanaged --
其中:
-
TYPE有:
- wifi (无线网)
- ethernet (有线网)
- loopback (本地软件测试用的回环地址)
-
STATE有:
- connected (已被NM管理,并且已经连接)
- disconnected(已被NM管理,可用,但是还未连接)
- unmanaged(未被NM管理)
- unavailable(不可用,NM无法管理,对于有线网可能是网线没插)
如果TYPE为wifi的网卡STATE为unmanaged,则解决方法为
用yum工具安装NetworkManager-wifi来管理wifi设备
yum install NetworkManager-wifi
安装完成后重启系统即可生效
再此之前需要连接有线网,步骤为
-
插上网线,使用指令
nmcli dev status
参看有线网的STATE[root@localhost ~]# nmcli dev status DEVICE TYPE STATE CONNECTION ... enp2s0f5 ethernet disconnected -- ...
如果STATE变为disconnected则可进行下一步连接操作
-
连接有线网
nmcli c up enp2s0f5
其中c为connection的缩写
安装完NetworkManager-wifi并重启后使用指令nmcli dev status
查看
[root@localhost ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
...
wlp1s0 wifi disconnected --
...
如果wifi的STATE为disconnected则可以进行下一步连接
1.2连接无线网
使用指令 nmcli dev wifi
查看可以连接的所有wifi信息
[root@localhost ~]# nmcli dev wifi
IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
* TP-LINK_5550 Infra 1 195 Mbit/s 100 ▂▄▆█ WPA1 WPA2
CMCC-5Q3D Infra 3 130 Mbit/s 100 ▂▄▆█ WPA1 WPA2
MERCURY_F928 Infra 6 270 Mbit/s 60 ▂▄▆_ WPA1 WPA2
CMCC-mji9 Infra 10 270 Mbit/s 60 ▂▄▆_ WPA1 WPA2
CMCC-MxM6 Infra 8 130 Mbit/s 47 ▂▄__ WPA1 WPA2
Xiaomi923B Infra 2 195 Mbit/s 30 ▂___ WPA1 WPA2
Xiaomi_9B3B Infra 6 130 Mbit/s 20 ▂___ WPA1 WPA2
使用指令nmcli dev wifi connect "SSID" password "密码"
进行连接
[root@localhost ~]# nmcli dev wifi connect TP-LINK_5550 password xxxxx
2.使用frp实现 内网穿透[1]
【注】:内网穿透可以使内网设备可以直接被其他设备访问,相当于获得一个公网ip,frp实现内网穿透的原理为:将内网设备与具有公网ip的服务器的端口一对一绑定,实现让服务器的端口映射到内网设备的端口,因此 需要服务端和客户端2种配置
2.1服务端配置
【注】:需要一台云服务器,以下为在centos7云服务器中的操作
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz # 下载文件
tar xzvf frp_0.33.0_linux_amd64.tar.gz # 解压
mv frp_0.33.0_linux_amd64 frp # 重命名
rm -f frpc frpc.ini frpc_full.ini # 删除客户端文件,仅保留服务端
修改frps.ini的内容为
[common]
bind_port = 7000
#服务端连接客户端的端口
dashboard_port = 7500
#仪表盘页面登录的用户名
dashboard_user = username
#仪表盘登录的密码
dashboard_pwd = password
【注】:其中7000为frp服务的端口,7500为frp的后端管理页面服务的端口,username,password分别为进入后端的账号密码
【注意】:需要在服务器的安全组中打开7000和7500端口
使用指令 ./frps -c frps.ini
来运行服务
在后台执行可用
nohup ./frps -c frps.ini &
2.2客户端配置
【注】:将客户端的端口与服务端端口绑定
1.下载对应客户端版本的frp[点击下载]
解压后[^2] 得到6个文件(3个frps文件和3个frpc文件)其中frps为服务端文件,frpc为客户端文件,_full.ini结尾的文件为 功能大全,作为范例供参考
2.修改frpc.ini文件
[common]
server_addr = 服务器ip地址
server_port = 7000
[ssh]
type = tcp
local_port = 22
remote_port = 6000
【注】:这样配置会把服务器的 6000端口映射为 客户端的 22 端口,可以使用
服务器ip:6000
来连接到 frpc端的22端口.【注意】:[ssh]为标签,可以自定义,但不允许重复
3.运行并连接到服务端
-
linux端
使用指令
./frpc -c frp.ini
连接到服务端提供的frp服务在后台运行可使用
nohup ./frpc -c frp.ini &
-
windows端
使用指令
frpc.exe -c frp.ini
以上操作完成后,可以使用以下指令登录到上面配置的内网设备
ssh root@服务器ip地址 -p 6000
3.科学上网[^1]
【注】:被墙的计算机不能直接访问到外网的设备,但可以访问到香港等地区的计算机,而这些计算机是可以访问外网的,科学上网的一条思路就是这种通过流量转发间接访问外网。一台可以访问外网的服务器可以为多台计算机转发流量,这种一对多的关系就需要通过服务器-客户端的架构实现,因此需要分别做 服务端和客户端的配置
3.1使用frp配置服务端
服务端的配置在步骤 2.使用frp实现 内网穿透 的基础上,步骤2中的服务器并没有配置流量转发服务,在这一步中我们要实现的就是这点。我们会把 一台能访问外网的服务器(这台服务器可以是自己) 作为组件拼接到步骤2中的服务器上,来提供流量转发服务。
【注意】: 需要一台能访问外网的设备,以下为在该外网设备上的操作(这个设备可以是步骤2中的的服务端)
1.创建frpc_proxy.ini文件并写入
[common]
server_addr = 服务器ip地址
server_port = 7000
[HK_http_proxy]
type = tcp
remote_port = 6003
plugin = http_proxy
# 可以添加认证
# plugin_http_user = 0HDFt
# plugin_http_passwd = JTN276
[HK_socks5]
type = tcp
remote_port =6004
plugin = socks5
# 可以添加认证
#plugin_user = 0HDFt16cLQJ
#plugin_passwd = JTN276Gp
use_encryption = true
use_compression = true
【注】:以上提供了http代理和socks5代理 2个服务
2.连接到服务端(如果在服务端运行就是自己连接自己)
执行下面的指令
nohup ./frpc -c frpc_proxy.ini &
3.2客户端连接享受服务
centos7客户端
设置 http_proxy 和 ftp_proxy 代理
-
永久设置
修改 /etc/profile 文件,添加下面内容:
http_proxy=http://username:password@yourproxy:port/ ftp_proxy=http://username:password@yourproxy:port/ export http_proxy export ftp_proxy
如果没有密码限制,则以上内容可以修改为以下内容:
http_proxy=http://yourproxy:port/ ftp_proxy=http://yourproxy:port/ export http_proxy export ftp_proxy
若只针对某个用户而言,则修改 ~/.bash_profile 文件,添加相同内容;
然后使用source /etc/profile使设置立即生效。
-
临时设置(重连后失效)
在命令行中直接输入下列命令即可
export http_proxy=http://username:password@yourproxy:port/ export ftp_proxy=http://username:password@yourproxy:port/ #或者 export http_proxy=http://yourproxy:port/ export ftp_proxy=http://yourproxy:port/
【注意】:设置之后可能使用ping时还是无法连接外网,但是pip时可以的,因为ping的协议不一样不能使用这个代理。
设置通过proxychains设置全局代理
-
下载源码
git clone https://github.com/rofl0r/proxychains-ng
-
安装gcc
yum install gcc
-
编译安装
$ ./configure --prefix=/usr --sysconfdir=/etc $ make $ make install $ make install-config (安装proxychains.conf配置文件)
-
修改 /etc/proxychains.conf 文件末尾处
[ProxyList] # add proxy here ... # meanwile # defaults set to "tor" socks5 yourproxy port # 如 socks5 114.144.252.111 7000 http yourproxy port
-
使用
在需要使用代理的指令前加上proxychains4前缀
proxychains4 curl https://httpbin.org/ip #测试IP,和不加前缀的指令做个对比
windows客户端
socks5有很多第三方软件是翻墙的主流因此不介绍,另外也可以在爬虫中作为代理ip使用,如:
curl -x 43.122.56.41:6000 https://httpbin.org/ip
res=requests.get(url,proxies={'https':'43.122.56.41:6000'},timeout=10)
[^1]科学上网: 科学上网某种通过科学的方法绕过上网限制访问。
[^2].tar.gz解压: linux端的.tar.gz
文件使用 tar -zxvf 压缩文件名.tar.gz
指令解压
Comments | 1 条评论
这博客样式我直接夸死,太好看了