内网穿透系列——frp (新一代高性能内网穿透工具)

一.介绍
前面介绍了ngrok,也说了它的1.x版本具有一些Bug并且作者放弃了维护,那么,谁能够取代ngrok在内网穿透工具中的地位呢?我觉得frp也许可以,frp是fast reverse proxy的缩写,其可用于反向代理和内网穿透,支持tcp, udp, http, https 协议,这比ngrok还多了个udp。并且发布以来广受欢迎,积累了不少用户,作者也是很勤快,一直在修复bug和更新新特性。

并且,作者是个中国人,所以在GitHub上还有中文文档,写的还挺详细的,不过……不去看文档是很多人的特点,所以我这边还是记点东西来介绍下简单的安装和操作配置。

二.安装配置
frp提供了热门平台的程序文件,所以安装也变得比较简单了,我这边的是Linux 64位平台的,其它的请自己去下——>传送门

wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_amd64.tar.gz
tar xzf frp_0.12.0_linux_amd64.tar.gz
mv frp_*/frps /usr/bin/
mkdir /etc/frp/
rm -rf frp_*

wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_amd64.tar.gz
tar xzf frp_0.12.0_linux_amd64.tar.gz
mv frp_*/frps /usr/bin/
mkdir /etc/frp/
rm -rf frp_*
然后根据下面配置你自己改了填到配置文件中

vi /etc/frp/frps.ini

vi /etc/frp/frps.ini
下面是我翻译的带说明的服务端配置文件,就这么凑和着看吧

[common]
#frp服务器监听地址,如果是IPV6地址必须用中括号包围
bind_addr = 0.0.0.0
#frp服务器监听端口
bind_port = 7000

#kcp的udp监听端口,如果不设那就不启用
#kcp_bind_port = 7000
#指定使用的协议,默认tcp,可选kcp
#protocol = kcp

#如果要使用vitual host,就必须设置
#vhost_http_port = 80
#vhost_https_port = 443

#Web后台监听端口
dashboard_port = 7500

#Web后台的用户名和密码
dashboard_user = admin
dashboard_pwd = admin

#Web后台的静态资源目录,调试用的,一般不设
#assets_dir = ./static

#日志输出,可以设置为具体的日志文件或者console
log_file = /var/log/frps.log

#日志记录等级,有trace, debug, info, warn, error
log_level = info
#日志保留时间
log_max_days = 3

#启用特权模式,从v0.10.0版本开始默认启用特权模式,且目前只能使用特权模式
#privilege_mode = true

#特权模式Token,请尽量长点且复杂
privilege_token = 12345678

#特权模式允许分配的端口范围
privilege_allow_ports = 2000-3000,3001,3003,4000-50000

#心跳超时,不用改
#heartbeat_timeout = 90

#每个代理可以设置的连接池上限
#max_pool_count = 5

#认证超时时间,一般不用改
#authentication_timeout = 900

#如果配置了这个,当你的模式为http或https时,就能设置子域名subdomain
#subdomain_host = frps.com

#是否启用tcp多路复用,默认就是true,不用管
#tcp_mux = true

[common]
#frp服务器监听地址,如果是IPV6地址必须用中括号包围
bind_addr = 0.0.0.0
#frp服务器监听端口
bind_port = 7000

#kcp的udp监听端口,如果不设那就不启用
#kcp_bind_port = 7000
#指定使用的协议,默认tcp,可选kcp
#protocol = kcp

#如果要使用vitual host,就必须设置
#vhost_http_port = 80
#vhost_https_port = 443

#Web后台监听端口
dashboard_port = 7500

#Web后台的用户名和密码
dashboard_user = admin
dashboard_pwd = admin

#Web后台的静态资源目录,调试用的,一般不设
#assets_dir = ./static

#日志输出,可以设置为具体的日志文件或者console
log_file = /var/log/frps.log

#日志记录等级,有trace, debug, info, warn, error
log_level = info
#日志保留时间
log_max_days = 3

#启用特权模式,从v0.10.0版本开始默认启用特权模式,且目前只能使用特权模式
#privilege_mode = true

#特权模式Token,请尽量长点且复杂
privilege_token = 12345678

#特权模式允许分配的端口范围
privilege_allow_ports = 2000-3000,3001,3003,4000-50000

#心跳超时,不用改
#heartbeat_timeout = 90

#每个代理可以设置的连接池上限
#max_pool_count = 5

#认证超时时间,一般不用改
#authentication_timeout = 900

#如果配置了这个,当你的模式为http或https时,就能设置子域名subdomain
#subdomain_host = frps.com

#是否启用tcp多路复用,默认就是true,不用管
#tcp_mux = true
在这个配置文件中老版本是可以不启用特权模式或者同时添加其它的section来在服务端配置其它的转发设置的,但是从v0.10.0版本开始后特权模式暂时是唯一可用的(因为方便,不用为了一个配置而既要改服务端又要改客户端)

在修改好服务端配置文件后,我们可以启用frp的服务端了

frps -c /etc/frp/frps.ini
1
frps -c /etc/frp/frps.ini
然后服务端就OK了,下面开始配置客户端,客户端程序自己在GitHub上面下,各个平台的包里面frps是服务器,frpc就是客户端

配置文件如下,自己修改后保存为frpc.ini

[common]
#frp服务器地址
server_addr = 1.2.3.4
#frp服务器端口
server_port = 7000
#特权模式Token
privilege_token = 12345678
#转发SSH
[ssh]
type = tcp
#可以指定为其它IP,默认是本地
#local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
#启用加密
use_encryption = true
#启用压缩
use_compression = true

#转发Web
[web]
type = http
local_port = 80
custom_domains = www.yourdomain.com
#修改header中的host
#host_header_rewrite = dev.yourdomain.com
#启用简单HTTP认证
#http_user = abc
#http_pwd = abc
#在服务端配置了subdomain_host的情况下用于自定义二级域名
#subdomain = test
#在存在多个相同域名的情况下通过请求的URL路由到不同的配置
#locations = /news,/about

#转发DNS请求
[dns]
type = udp
local_ip = 8.8.8.8
local_port = 53
remote_port = 6000

#转发Unix域套接字(这儿是Docker)
[unix_domain_socket]
type = tcp
remote_port = 6000
plugin = unix_domain_socket
plugin_unix_path = /var/run/docker.sock

#HTTP代理
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
#配置http代理的简单认证
#plugin_http_user = abc
#plugin_http_passwd = abc

[common]
#frp服务器地址
server_addr = 1.2.3.4
#frp服务器端口
server_port = 7000
#特权模式Token
privilege_token = 12345678
#转发SSH
[ssh]
type = tcp
#可以指定为其它IP,默认是本地
#local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
#启用加密
use_encryption = true
#启用压缩
use_compression = true

#转发Web
[web]
type = http
local_port = 80
custom_domains = www.yourdomain.com
#修改header中的host
#host_header_rewrite = dev.yourdomain.com
#启用简单HTTP认证
#http_user = abc
#http_pwd = abc
#在服务端配置了subdomain_host的情况下用于自定义二级域名
#subdomain = test
#在存在多个相同域名的情况下通过请求的URL路由到不同的配置
#locations = /news,/about

#转发DNS请求
[dns]
type = udp
local_ip = 8.8.8.8
local_port = 53
remote_port = 6000

#转发Unix域套接字(这儿是Docker)
[unix_domain_socket]
type = tcp
remote_port = 6000
plugin = unix_domain_socket
plugin_unix_path = /var/run/docker.sock

#HTTP代理
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
#配置http代理的简单认证
#plugin_http_user = abc
#plugin_http_passwd = abc
以上是大部分的参考,如果你有啥需要的参照着改就行了

在Linux等平台下,执行如下命令就行

frpc -c /path/to/frpc.ini

frpc -c /path/to/frpc.ini
而在Windows下,需要你创建一个frpc.exe的快捷方式,然后将参数加到快捷方式属性的目标那一栏的frpc.exe后面,也可以自己百度下如果将命令注册为系统服务来实现常驻

成功运行后,访问服务器的7500端口会有一个WebGUI,如下,显示当前的状态,左侧的Proxies里会显示客户端注册的各种转发规则

至于客户端这儿有日志提示是否连上服务器,是否成功启用配置啥的

总的来说还是挺好用的,比较期待以后还有啥新的功能_(:з」∠)_

C盘根目录常见文件夹的作用

 

Recent文件夹最常见的四处位置如下:
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Recent
C:\Documents and Settings\Administrator\Recent
C:\Documents and Settings\Default User\Recent
C:\Users\Administrator\Recent

而且完全可以全部删除,删除后不会影响到系统的正常使用。

 

C盘根目录常见文件夹的作用

 

Documents and Settings/用户:Win7中的“用户”文件夹跟XP中的“Documents and Settings”文件夹是一样的用途,用于存储用户的设置,包括用户文档、上网浏览信息、配置文件等数据

 

Downloads:这通常是下载软件的默认下载路径,建议下载软件时把路径改到其他硬盘分区去

 

Drivers:部分驱动程序的文件夹

 

Favorites:收藏夹

 

Program Files:应用程序文件夹,一般软件默认都安装在这里,也有一些系统自带的应用程序。在win7系统中,64位用户会多出一个Program Files(86)文件夹,这是系统中32位软件的安装目录

 

Program Data:Windows 7的系统文件夹,放置程序的使用数据、设置等文件(不建议删除)

 

Windows:存放操作系统主要文件(非常重要)

 

Temp:存放系统或其他软件临时文件,需经常清理

 

Hiberfil.sys:系统的休眠功能所占用的硬盘空间的文件(不建议删除)

 

Pagefile.sys:虚拟内存页面文件(不建议删除)

 

PerfLogs:Windows Vista或Windows 7系统日志,记录如磁盘扫描错误等信息(没有必要删除)

 

Document and Settings/用户常见文件夹

 

默认情况下位于系统分区根目录下,包括:Administrator、All Users、Default User、用户文件夹等。All Users针对所有用户,这里的更改对所有用户有效,Administrator针对系统管理员账户

 

Application Data:通用应用程序数据文件夹

 

Local Settings:保存应用程序数据、历史和临时文件

 

My Document:我的文档

 

NetHood:网络共享目录

 

PrintHood:打印共享目录

 

Recent:最近打开的文档

 

SendTo:鼠标右键的:“发送到”

 

Templates:存储着常用程序的模板文件

 

Temp:临时文件目录,在系统和软件的运行过程中产生的临时文件就存放于此

 

Temporary Internet Files:IE下载文件的缓存区

 

Program Files常见文件夹

 

Common Files:共用程序文件夹,用于同系列不同程序软件共同使用或调用数据,不如微软和Adobe的各种软件

 

ComPlus Application:微软COM+组件使用的文件夹,删除后可能引起COM+组件不能运行

 

DIFX:DIFX是一种高效的XML索引方法,此文件夹与数据索引有关(不能删除)

 

Internet Explorer:系统自带的IE浏览器,删除后可能导致部分程序不能正常运行

 

InstallShield Installation Information:专门存储安装程序信息的文件夹,用于某些程序的卸载和更新

 

MSECache:MS Office运行时自动创建

 

MSXML 6.0:微软XML解析器程序的文件夹

 

Microsoft FrontPage:FrontPage是微软推出的一款网页设计软件,此文件夹通常为空

 

Movie Maker:系统自带的一款视频编辑软件

 

MSN Gaming Zone:一些系统自带的扑克牌等小游戏(可以删除)

 

Netmeeting:系统自带的网上聊天软件

 

Outlook Express:Outlook Express是Windows内置的邮件收发端(不可删除)

 

Online Services:网络服务文件夹(不能删除)

 

Windows Media Player:系统自带的一款多媒体播放器

 

WinRAR:压缩解压缩软件

 

Xerox:用作自带的一些图像处理软件的临时空间,通常为空,但(不能删除)

解决:登录失败,用户账号限制。可能的原因包括不允许空密码,登录时间限制,或强制的策略限制

win7操作系统在局域网共享文件时,有时会遇到“登录失败:用户账户限制。可能的原因包括不允许空密码,登录时间限制,或强制的策略限制。”的情况,这要怎么解决呢?

解析
这是因为电脑没有开机密码,而windows的默认策略是空白密码的账号只允许从控制台登录,也就是本地登录。所以我们要想允许空密码共享,就需要更改默认的策略。

解决方法
1、按WIN+R,调出运行框。WIN就是键盘上有个windows图标的那个键。在运行框输入 gpedit.msc ,并回车;

20170628110441767
2、在弹出的窗口,展开左侧目录树至安全选项,如图。(计算机配置-Windows设置-安全设置-本地策略-安全选项);

20170628110504902
4、在右侧策略处找到“账户:使用空白密码的本地账户只允许进行控制台登录”,此策略默认是已启用;

20170628110528261
5、双击打开“账户:使用空白密码的本地账户只允许进行控制台登录”,将其改为“已禁用”,并确定,生效。再访问共享就正常了。

—————————20170628110545375

Winload.exe丢失或损坏0xc0000225

在 PE 上你的系统盘是 C: ,打开 CMD 输入 bcdboot C:\windows /l zh-cn /s C: /f BIOS,成功后再输入 diskpart 回车,sel vol C 回车,act 回车,就成功修复了。

CentOS 升级系统内核到最新版

CentOS 升级系统内核到最新版 | 系统运维

CentOS 升级系统内核到最新版 | 系统运维

说明:

系统版本:CentOS 7.x

CentOS 7.x默认内核版本是Linux 3.10,我们需要部署K8s等项目需要高版本的内核。

Linux Kernel官方网站:https://www.kernel.org/

ELRepo源网站:http://elrepo.org/

一、升级系统

#检查当前 CentOS 系统版本

cat /etc/redhat-release

CentOS Linux release 7.9.2009 (Core)

#检查当前 CentOS 系统内核版本

uname -sr

Linux 3.10.0-1160.el7.x86_64

yum clean all #清除缓存

yum makecache fast #重新建立缓存

yum update -y #升级系统

reboot #重启系统

二、使用elrepo源升级内核

rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

cp /etc/yum.repos.d/elrepo.repo /etc/yum.repos.d/elrepo.repo.bak #备份文件

#查看最新版内核

yum –disablerepo=”*” –enablerepo=”elrepo-kernel” list available

lable

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* elrepo-kernel: hkg.mirror.rackspace.com

Available Packages

kernel-lt.x86_64 5.4.129-1.el7.elrepo elrepo-kernel

kernel-lt-devel.x86_64 5.4.129-1.el7.elrepo elrepo-kernel

kernel-lt-doc.noarch 5.4.129-1.el7.elrepo elrepo-kernel

kernel-lt-headers.x86_64 5.4.129-1.el7.elrepo elrepo-kernel

kernel-lt-tools.x86_64 5.4.129-1.el7.elrepo elrepo-kernel

kernel-lt-tools-libs.x86_64 5.4.129-1.el7.elrepo elrepo-kernel

kernel-lt-tools-libs-devel.x86_64 5.4.129-1.el7.elrepo elrepo-kernel

kernel-ml-devel.x86_64 5.13.0-1.el7.elrepo elrepo-kernel

kernel-ml-doc.noarch 5.13.0-1.el7.elrepo elrepo-kernel

kernel-ml-headers.x86_64 5.13.0-1.el7.elrepo elrepo-kernel

kernel-ml-tools.x86_64 5.13.0-1.el7.elrepo elrepo-kernel

kernel-ml-tools-libs.x86_64 5.13.0-1.el7.elrepo elrepo-kernel

kernel-ml-tools-libs-devel.x86_64 5.13.0-1.el7.elrepo elrepo-kernel

perf.x86_64 5.13.0-1.el7.elrepo elrepo-kernel

python-perf.x86_64 5.13.0-1.el7.elrepo elrepo-kernel

内核版本说明:

#kernel-ml #主线版本,比较新

#kernel-lt #长期支持版本,比较旧

#安装新内核,这里安装主线版本

yum –enablerepo=elrepo-kernel install kernel-ml

三、设置系统默认内核

#查看系统上的所有可用内核

awk -F\’ ‘$1==”menuentry ” {print i++ ” : ” $2}’ /etc/grub2.cfg

0 : CentOS Linux (5.13.0-1.el7.elrepo.x86_64) 7 (Core)

1 : CentOS Linux (3.10.0-1160.31.1.el7.x86_64) 7 (Core)

2 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)

3 : CentOS Linux (0-rescue-2aaf6a587102425da09a55cad51a2c2f) 7 (Core)

#设置默认内核为我们刚才升级的内核版本

cp /etc/default/grub /etc/default/grub-bak #备份

grub2-set-default 0 #设置默认内核版本

vi /etc/default/grub

GRUB_DEFAULT=saved修改为:

GRUB_DEFAULT=0

:wq! #保存退出

#重新创建内核配置

grub2-mkconfig -o /boot/grub2/grub.cfg

#查看默认内核

grubby –default-kernel

grub2-editenv list

yum makecache #更新软件包

reboot #重启,现在系统默认内核已经是我们刚才升级后的最新版本

至此,CentOS升级系统内核到最新版教程完成。

扩展阅读:

#查看可以安装的内核版本

yum –enablerepo=”elrepo-kernel” list –showduplicates | sort -r | grep kernel-ml.x86_64

#安装指定版本内核

yum –enablerepo=”elrepo-kernel” install kernel-ml-5.13.1-1.el7.elrepo.x86_64 -y

检查映像

右键开始菜单–Windows powershell(管理员)–输入sfc  /scannow(注意/前有空格)–回车,系统会开始扫描受损的文件然后修复,最后重启系统,一般来说到这里就好了。

但有时会碰到下图这种情况

Figure 1


解决办法:

一、检查映像是否可修复

1.扫描映像来检查损坏。在管理员命令提示符下键入以下命令:

DiSM /Online /Cleanup-Image /ScanHealth

2.检查映像以查看是否有检测到损坏。在管理员命令提示符下键入:

DiSM /Online /Cleanup-Image /CheckHealth

二、修复映像

1.若要修复映像,在管理员命令提示符下键入:

DISM /Online /Cleanup-image /RestoreHealth

注:

修复会非常非常慢,因为要联网下载源文件,最好挂VPN,不然可能下载不了。

win10出现蓝屏winload.efi 0xc000000f的两种解决方法

方法一:

1.执行启动修复,并检查是否有帮助。

2.插入Windows安装DVD或USB,然后从中启动Windows。

3.在“ Windows设置”页面中,选择 “要安装的语言”。

win10出现蓝屏winload.efi 0xc000000f的两种解决方法

“时间和货币格式”以及“ 键盘或输入法”,然后单击“下一步”。

4.单击“修复计算机”,然后选择 “故障排除”。

5.单击“高级选项”,然后选择“自动修复”, 然后选择操作系统。

6.如果问题仍然存在,建议您尝试以下步骤并检查是否有帮助。

win10出现蓝屏winload.efi 0xc000000f的两种解决方法

方法二:

您可以尝试从光盘重建BCD引导并按照以下说明进行操作:

1.插入安装DVD或USB,然后从中启动Windows 8。

2.在“ Windows设置”页面中,选择 “要安装的语言”,

“时间和货币格式”以及“ 键盘或输入法”,然后单击“下一步”。

3.单击“ 修复计算机”。

win10出现蓝屏winload.efi 0xc000000f的两种解决方法

4.单击疑难解答,然后选择高级选项。

5.单击命令提示符并键入以下命令,然后在每个命令后按Enter:

引导程序/ fixmbr

引导程序/ fixboot

引导/ rebuildbcd

win10出现蓝屏winload.efi 0xc000000f的两种解决方法

6.重新启动计算机。检查问题是否仍然存在。

Win10系统winload.efi丢失或损坏怎么办?

winload.efi是通过UEFI方式引导必要的引导文件,如果系统中丢失或是损坏将导致系统无法启动,如win10在出现这样的问题时会出现蓝屏恢复界面,那么此时该如何解决呢?此例为 GPT+UEFI

winload.EFI这个文件损坏导致的。这是UEFI快速启动的引导文件。这种错误基本上是人为损坏导致的

1、使用的是win10正版操作系统,删除了引导分区,只能重新安装操作系统。

2、改装GHOST版本win10导致的,不能使用UEFI启动。

出现winload.efi梢头步或包含错误,不一定是文件损坏,也有可能是你的电脑没有设置好启动项。

第一种方案:
解决方法其实很简单,我们可以直接在联想电脑开机启动时快按F12试试各种启动项。这个与下面为两种方法

由于每个品牌主板BIOS有所不同,所以具体的可以上网查询,其它品牌主板或者笔记本请参考,开机进入BIOS,我们找到BOOT选项,在BOOT选项中,改动第一启动项!

第二种方案:
进入pe系统修复引导,如果还不行请重装系统!

重装系统很简单,你可以自己在网上下个pe系统软件,例如:微PE(推荐),优启通,U盘装机大师(较不纯净)等 (需要进入pe)

制作成启动盘即可

总之第一种基本解决

有时候也会出现重装系统仍然出现蓝屏或黑屏问题,重装的系统安装不上

那么这时请继续试试第一种方案!

通过DiskGenius可以看到你目前默认启动的系统

最后一项设置UEFI BIOS 启动项

删除无用不能进入系统的启动项即可!