Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
企猫商务
frp
提交
df5859b5
F
frp
项目概览
企猫商务
/
frp
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
frp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
df5859b5
编写于
7月 05, 2021
作者:
F
Fishbone
提交者:
GitHub
7月 05, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix server-side proxy inappropriate quit when met `accept: too many open files` error (#2467)
上级
3dd888a9
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
23 addition
and
2 deletion
+23
-2
conf/systemd/frpc.service
conf/systemd/frpc.service
+1
-0
conf/systemd/frpc@.service
conf/systemd/frpc@.service
+2
-1
conf/systemd/frps.service
conf/systemd/frps.service
+1
-0
conf/systemd/frps@.service
conf/systemd/frps@.service
+1
-0
server/proxy/proxy.go
server/proxy/proxy.go
+18
-1
未找到文件。
conf/systemd/frpc.service
浏览文件 @
df5859b5
...
...
@@ -9,6 +9,7 @@ Restart=on-failure
RestartSec
=
5s
ExecStart
=
/usr/bin/frpc -c /etc/frp/frpc.ini
ExecReload
=
/usr/bin/frpc reload -c /etc/frp/frpc.ini
LimitNOFILE
=
1048576
[Install]
WantedBy
=
multi-user.target
conf/systemd/frpc@.service
浏览文件 @
df5859b5
...
...
@@ -3,12 +3,13 @@ Description=Frp Client Service
After
=
network.target
[Service]
Type
=
id
le
Type
=
simp
le
User
=
nobody
Restart
=
on-failure
RestartSec
=
5s
ExecStart
=
/usr/bin/frpc -c /etc/frp/%i.ini
ExecReload
=
/usr/bin/frpc reload -c /etc/frp/%i.ini
LimitNOFILE
=
1048576
[Install]
WantedBy
=
multi-user.target
conf/systemd/frps.service
浏览文件 @
df5859b5
...
...
@@ -8,6 +8,7 @@ User=nobody
Restart
=
on-failure
RestartSec
=
5s
ExecStart
=
/usr/bin/frps -c /etc/frp/frps.ini
LimitNOFILE
=
1048576
[Install]
WantedBy
=
multi-user.target
conf/systemd/frps@.service
浏览文件 @
df5859b5
...
...
@@ -8,6 +8,7 @@ User=nobody
Restart
=
on-failure
RestartSec
=
5s
ExecStart
=
/usr/bin/frps -c /etc/frp/%i.ini
LimitNOFILE
=
1048576
[Install]
WantedBy
=
multi-user.target
server/proxy/proxy.go
浏览文件 @
df5859b5
...
...
@@ -21,6 +21,7 @@ import (
"net"
"strconv"
"sync"
"time"
"github.com/fatedier/frp/pkg/config"
"github.com/fatedier/frp/pkg/msg"
...
...
@@ -151,12 +152,28 @@ func (pxy *BaseProxy) startListenHandler(p Proxy, handler func(Proxy, net.Conn,
xl
:=
xlog
.
FromContextSafe
(
pxy
.
ctx
)
for
_
,
listener
:=
range
pxy
.
listeners
{
go
func
(
l
net
.
Listener
)
{
var
tempDelay
time
.
Duration
// how long to sleep on accept failure
for
{
// block
// if listener is closed, err returned
c
,
err
:=
l
.
Accept
()
if
err
!=
nil
{
xl
.
Info
(
"listener is closed"
)
if
err
,
ok
:=
err
.
(
interface
{
Temporary
()
bool
});
ok
&&
err
.
Temporary
()
{
if
tempDelay
==
0
{
tempDelay
=
5
*
time
.
Millisecond
}
else
{
tempDelay
*=
2
}
if
max
:=
1
*
time
.
Second
;
tempDelay
>
max
{
tempDelay
=
max
}
xl
.
Info
(
"met temporary error: %s, sleep for %s ..."
,
err
,
tempDelay
)
time
.
Sleep
(
tempDelay
)
continue
}
xl
.
Warn
(
"listener is closed: %s"
,
err
)
return
}
xl
.
Info
(
"get a user connection [%s]"
,
c
.
RemoteAddr
()
.
String
())
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录