2004-07-31 02:34:24 +00:00
|
|
|
<%@page contentType="text/html" %>
|
2004-07-24 02:06:07 +00:00
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
|
|
|
|
|
|
<html><head>
|
2005-09-07 22:31:11 +00:00
|
|
|
<title>I2P Router Console - config networking</title>
|
2004-07-24 02:06:07 +00:00
|
|
|
<link rel="stylesheet" href="default.css" type="text/css" />
|
|
|
|
</head><body>
|
|
|
|
|
|
|
|
<%@include file="nav.jsp" %>
|
|
|
|
<%@include file="summary.jsp" %>
|
|
|
|
|
|
|
|
<jsp:useBean class="net.i2p.router.web.ConfigNetHelper" id="nethelper" scope="request" />
|
|
|
|
<jsp:setProperty name="nethelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
|
|
|
|
|
|
|
<div class="main" id="main">
|
|
|
|
<%@include file="confignav.jsp" %>
|
2004-07-31 02:34:24 +00:00
|
|
|
|
|
|
|
<jsp:useBean class="net.i2p.router.web.ConfigNetHandler" id="formhandler" scope="request" />
|
|
|
|
<jsp:setProperty name="formhandler" property="*" />
|
|
|
|
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
|
|
|
<font color="red"><jsp:getProperty name="formhandler" property="errors" /></font>
|
|
|
|
<i><jsp:getProperty name="formhandler" property="notices" /></i>
|
|
|
|
|
2004-07-24 02:06:07 +00:00
|
|
|
<form action="config.jsp" method="POST">
|
2004-08-23 17:11:38 +00:00
|
|
|
<% String prev = System.getProperty("net.i2p.router.web.ConfigNetHandler.nonce");
|
|
|
|
if (prev != null) System.setProperty("net.i2p.router.web.ConfigNetHandler.noncePrev", prev);
|
|
|
|
System.setProperty("net.i2p.router.web.ConfigNetHandler.nonce", new java.util.Random().nextLong()+""); %>
|
|
|
|
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigNetHandler.nonce")%>" />
|
|
|
|
<input type="hidden" name="action" value="blah" />
|
|
|
|
|
2004-07-24 02:06:07 +00:00
|
|
|
<b>Bandwidth limiter</b><br />
|
2004-11-21 19:42:57 +00:00
|
|
|
Inbound rate:
|
2005-09-17 23:01:44 +00:00
|
|
|
<input name="inboundrate" type="text" size="2" value="<jsp:getProperty name="nethelper" property="inboundRate" />" /> KBps
|
2005-02-16 jrandom
* (Merged the 0.5-pre branch back into CVS HEAD)
* Replaced the old tunnel routing crypto with the one specified in
router/doc/tunnel-alt.html, including updates to the web console to view
and tweak it.
* Provide the means for routers to reject tunnel requests with a wider
range of responses:
probabalistic rejection, due to approaching overload
transient rejection, due to temporary overload
bandwidth rejection, due to persistent bandwidth overload
critical rejection, due to general router fault (or imminent shutdown)
The different responses are factored into the profiles accordingly.
* Replaced the old I2CP tunnel related options (tunnels.depthInbound, etc)
with a series of new properties, relevent to the new tunnel routing code:
inbound.nickname (used on the console)
inbound.quantity (# of tunnels to use in any leaseSets)
inbound.backupQuantity (# of tunnels to keep in the ready)
inbound.length (# of remote peers in the tunnel)
inbound.lengthVariance (if > 0, permute the length by adding a random #
up to the variance. if < 0, permute the length
by adding or subtracting a random # up to the
variance)
outbound.* (same as the inbound, except for the, uh, outbound tunnels
in that client's pool)
There are other options, and more will be added later, but the above are
the most relevent ones.
* Replaced Jetty 4.2.21 with Jetty 5.1.2
* Compress all profile data on disk.
* Adjust the reseeding functionality to work even when the JVM's http proxy
is set.
* Enable a poor-man's interactive-flow in the streaming lib by choking the
max window size.
* Reduced the default streaming lib max message size to 16KB (though still
configurable by the user), also doubling the default maximum window
size.
* Replaced the RouterIdentity in a Lease with its SHA256 hash.
* Reduced the overall I2NP message checksum from a full 32 byte SHA256 to
the first byte of the SHA256.
* Added a new "netId" flag to let routers drop references to other routers
who we won't be able to talk to.
* Extended the timestamper to get a second (or third) opinion whenever it
wants to actually adjust the clock offset.
* Replaced that kludge of a timestamp I2NP message with a full blown
DateMessage.
* Substantial memory optimizations within the router and the SDK to reduce
GC churn. Client apps and the streaming libs have not been tuned,
however.
* More bugfixes thank you can shake a stick at.
2005-02-13 jrandom
* Updated jbigi source to handle 64bit CPUs. The bundled jbigi.jar still
only contains 32bit versions, so build your own, placing libjbigi.so in
your install dir if necessary. (thanks mule!)
* Added support for libjbigi-$os-athlon64 to NativeBigInteger and CPUID
(thanks spaetz!)
2005-02-16 22:23:47 +00:00
|
|
|
bursting up to
|
2005-09-17 23:01:44 +00:00
|
|
|
<input name="inboundburstrate" type="text" size="2" value="<jsp:getProperty name="nethelper" property="inboundBurstRate" />" /> KBps for
|
2004-07-24 02:06:07 +00:00
|
|
|
<jsp:getProperty name="nethelper" property="inboundBurstFactorBox" /><br />
|
2004-11-21 19:42:57 +00:00
|
|
|
Outbound rate:
|
2005-09-17 23:01:44 +00:00
|
|
|
<input name="outboundrate" type="text" size="2" value="<jsp:getProperty name="nethelper" property="outboundRate" />" /> KBps
|
2005-02-16 jrandom
* (Merged the 0.5-pre branch back into CVS HEAD)
* Replaced the old tunnel routing crypto with the one specified in
router/doc/tunnel-alt.html, including updates to the web console to view
and tweak it.
* Provide the means for routers to reject tunnel requests with a wider
range of responses:
probabalistic rejection, due to approaching overload
transient rejection, due to temporary overload
bandwidth rejection, due to persistent bandwidth overload
critical rejection, due to general router fault (or imminent shutdown)
The different responses are factored into the profiles accordingly.
* Replaced the old I2CP tunnel related options (tunnels.depthInbound, etc)
with a series of new properties, relevent to the new tunnel routing code:
inbound.nickname (used on the console)
inbound.quantity (# of tunnels to use in any leaseSets)
inbound.backupQuantity (# of tunnels to keep in the ready)
inbound.length (# of remote peers in the tunnel)
inbound.lengthVariance (if > 0, permute the length by adding a random #
up to the variance. if < 0, permute the length
by adding or subtracting a random # up to the
variance)
outbound.* (same as the inbound, except for the, uh, outbound tunnels
in that client's pool)
There are other options, and more will be added later, but the above are
the most relevent ones.
* Replaced Jetty 4.2.21 with Jetty 5.1.2
* Compress all profile data on disk.
* Adjust the reseeding functionality to work even when the JVM's http proxy
is set.
* Enable a poor-man's interactive-flow in the streaming lib by choking the
max window size.
* Reduced the default streaming lib max message size to 16KB (though still
configurable by the user), also doubling the default maximum window
size.
* Replaced the RouterIdentity in a Lease with its SHA256 hash.
* Reduced the overall I2NP message checksum from a full 32 byte SHA256 to
the first byte of the SHA256.
* Added a new "netId" flag to let routers drop references to other routers
who we won't be able to talk to.
* Extended the timestamper to get a second (or third) opinion whenever it
wants to actually adjust the clock offset.
* Replaced that kludge of a timestamp I2NP message with a full blown
DateMessage.
* Substantial memory optimizations within the router and the SDK to reduce
GC churn. Client apps and the streaming libs have not been tuned,
however.
* More bugfixes thank you can shake a stick at.
2005-02-13 jrandom
* Updated jbigi source to handle 64bit CPUs. The bundled jbigi.jar still
only contains 32bit versions, so build your own, placing libjbigi.so in
your install dir if necessary. (thanks mule!)
* Added support for libjbigi-$os-athlon64 to NativeBigInteger and CPUID
(thanks spaetz!)
2005-02-16 22:23:47 +00:00
|
|
|
bursting up to
|
2005-09-17 23:01:44 +00:00
|
|
|
<input name="outboundburstrate" type="text" size="2" value="<jsp:getProperty name="nethelper" property="outboundBurstRate" />" /> KBps for
|
2004-07-24 02:06:07 +00:00
|
|
|
<jsp:getProperty name="nethelper" property="outboundBurstFactorBox" /><br />
|
2008-05-30 00:08:29 +00:00
|
|
|
<i>KBps = kilobytes per second = 1024 bytes per second = 8192 bits per second.<br />
|
2008-02-21 14:05:33 +00:00
|
|
|
A negative inbound rate means a default limit of 32KBytes per second.
|
|
|
|
A negative outbound rate means a default limit of 16KBytes per second.</i><br />
|
2005-02-16 jrandom
* (Merged the 0.5-pre branch back into CVS HEAD)
* Replaced the old tunnel routing crypto with the one specified in
router/doc/tunnel-alt.html, including updates to the web console to view
and tweak it.
* Provide the means for routers to reject tunnel requests with a wider
range of responses:
probabalistic rejection, due to approaching overload
transient rejection, due to temporary overload
bandwidth rejection, due to persistent bandwidth overload
critical rejection, due to general router fault (or imminent shutdown)
The different responses are factored into the profiles accordingly.
* Replaced the old I2CP tunnel related options (tunnels.depthInbound, etc)
with a series of new properties, relevent to the new tunnel routing code:
inbound.nickname (used on the console)
inbound.quantity (# of tunnels to use in any leaseSets)
inbound.backupQuantity (# of tunnels to keep in the ready)
inbound.length (# of remote peers in the tunnel)
inbound.lengthVariance (if > 0, permute the length by adding a random #
up to the variance. if < 0, permute the length
by adding or subtracting a random # up to the
variance)
outbound.* (same as the inbound, except for the, uh, outbound tunnels
in that client's pool)
There are other options, and more will be added later, but the above are
the most relevent ones.
* Replaced Jetty 4.2.21 with Jetty 5.1.2
* Compress all profile data on disk.
* Adjust the reseeding functionality to work even when the JVM's http proxy
is set.
* Enable a poor-man's interactive-flow in the streaming lib by choking the
max window size.
* Reduced the default streaming lib max message size to 16KB (though still
configurable by the user), also doubling the default maximum window
size.
* Replaced the RouterIdentity in a Lease with its SHA256 hash.
* Reduced the overall I2NP message checksum from a full 32 byte SHA256 to
the first byte of the SHA256.
* Added a new "netId" flag to let routers drop references to other routers
who we won't be able to talk to.
* Extended the timestamper to get a second (or third) opinion whenever it
wants to actually adjust the clock offset.
* Replaced that kludge of a timestamp I2NP message with a full blown
DateMessage.
* Substantial memory optimizations within the router and the SDK to reduce
GC churn. Client apps and the streaming libs have not been tuned,
however.
* More bugfixes thank you can shake a stick at.
2005-02-13 jrandom
* Updated jbigi source to handle 64bit CPUs. The bundled jbigi.jar still
only contains 32bit versions, so build your own, placing libjbigi.so in
your install dir if necessary. (thanks mule!)
* Added support for libjbigi-$os-athlon64 to NativeBigInteger and CPUID
(thanks spaetz!)
2005-02-16 22:23:47 +00:00
|
|
|
Bandwidth share percentage:
|
|
|
|
<jsp:getProperty name="nethelper" property="sharePercentageBox" /><br />
|
2007-07-04 22:58:48 +00:00
|
|
|
<% int share = nethelper.getShareBandwidth();
|
2007-08-06 03:35:42 +00:00
|
|
|
if (share < 12) {
|
2007-07-04 22:58:48 +00:00
|
|
|
out.print("<b>NOTE</b>: You have configured I2P to share only " + share + "KBps. ");
|
2007-08-06 03:35:42 +00:00
|
|
|
out.print("I2P requires at least 12KBps to enable sharing. ");
|
|
|
|
out.print("Please enable sharing (participating in tunnels) by configuring more bandwidth. ");
|
|
|
|
out.print("It improves your anonymity by creating cover traffic, and helps the network.<br />");
|
2007-07-04 22:58:48 +00:00
|
|
|
} else {
|
|
|
|
out.print("You have configured I2P to share " + share + "KBps. ");
|
|
|
|
out.print("The higher the share bandwidth the more you improve your anonymity and help the network.<br />");
|
|
|
|
}
|
|
|
|
%>
|
|
|
|
<p>
|
2006-03-16 21:45:17 +00:00
|
|
|
<input type="submit" name="save" value="Save changes" /> <input type="reset" value="Cancel" /><br />
|
2004-07-24 02:06:07 +00:00
|
|
|
<hr />
|
2007-07-04 22:58:48 +00:00
|
|
|
<!--
|
2006-02-16 10:33:29 +00:00
|
|
|
<b>Enable load testing: </b>
|
|
|
|
<input type="checkbox" name="enableloadtesting" value="true" <jsp:getProperty name="nethelper" property="enableLoadTesting" /> />
|
|
|
|
<p>If enabled, your router will periodically anonymously probe some of your peers
|
|
|
|
to see what sort of throughput they can handle. This improves your router's ability
|
2006-02-25 21:51:46 +00:00
|
|
|
to pick faster peers, but can cost substantial bandwidth. Relevant data from the
|
2006-02-16 10:33:29 +00:00
|
|
|
load testing is fed into the profiles as well as the
|
|
|
|
<a href="oldstats.jsp#test.rtt">test.rtt</a> and related stats.</p>
|
2006-02-19 12:29:57 +00:00
|
|
|
<hr />
|
2007-07-04 22:58:48 +00:00
|
|
|
-->
|
2006-02-19 12:29:57 +00:00
|
|
|
<b>External UDP address:</b> <i><jsp:getProperty name="nethelper" property="udpAddress" /></i><br />
|
|
|
|
<b>Require SSU introductions? </b>
|
|
|
|
<input type="checkbox" name="requireIntroductions" value="true" <jsp:getProperty name="nethelper" property="requireIntroductionsChecked" /> /><br />
|
|
|
|
<p>If you can, please poke a hole in your NAT or firewall to allow unsolicited UDP packets to reach
|
|
|
|
you on your external UDP address. If you can't, I2P now includes supports UDP hole punching
|
|
|
|
with "SSU introductions" - peers who will relay a request from someone you don't know to your
|
|
|
|
router for your router so that you can make an outbound connection to them. I2P will use these
|
|
|
|
introductions automatically if it detects that the port is not forwarded (as shown by
|
|
|
|
the <i>Status: OK (NAT)</i> line), or you can manually require them here.
|
|
|
|
Users behind symmetric NATs, such as OpenBSD's pf, are not currently supported.</p>
|
|
|
|
<input type="submit" name="recheckReachability" value="Check network reachability..." />
|
2006-02-16 10:33:29 +00:00
|
|
|
<hr />
|
2006-07-04 21:17:44 +00:00
|
|
|
<b>Inbound TCP connection configuration:</b><br />
|
|
|
|
Externally reachable hostname or IP address:
|
|
|
|
<input name ="ntcphost" type="text" size="16" value="<jsp:getProperty name="nethelper" property="ntcphostname" />" />
|
|
|
|
(dyndns and the like are fine)<br />
|
2007-07-07 20:03:50 +00:00
|
|
|
OR use IP address detected by SSU
|
|
|
|
(currently <jsp:getProperty name="nethelper" property="udpIP" />)?
|
|
|
|
<input type="checkbox" name="ntcpAutoIP" value="true" <jsp:getProperty name="nethelper" property="tcpAutoIPChecked" /> /><br />
|
|
|
|
<p>
|
2006-07-04 21:17:44 +00:00
|
|
|
Externally reachable TCP port:
|
|
|
|
<input name ="ntcpport" type="text" size="6" value="<jsp:getProperty name="nethelper" property="ntcpport" />" /><br />
|
2007-07-07 20:03:50 +00:00
|
|
|
OR use the same port configured for SSU
|
|
|
|
(currently <jsp:getProperty name="nethelper" property="udpPort" />)?
|
|
|
|
<input type="checkbox" name="ntcpAutoPort" value="true" <jsp:getProperty name="nethelper" property="tcpAutoPortChecked" /> /><br />
|
2008-06-09 13:14:52 +00:00
|
|
|
<p>A hostname entered here will be published in the network database.
|
|
|
|
It is <b>not private</b>.
|
|
|
|
Also, <b>do not enter a private IP address</b> like 127.0.0.1 or 192.168.1.1.
|
|
|
|
</p>
|
2006-07-04 21:17:44 +00:00
|
|
|
<p>You do <i>not</i> need to allow inbound TCP connections - outbound connections work with no
|
|
|
|
configuration. However, if you want to receive inbound TCP connections, you <b>must</b> poke a hole
|
|
|
|
in your NAT or firewall for unsolicited TCP connections. If you specify the wrong IP address or
|
|
|
|
hostname, or do not properly configure your NAT or firewall, your network performance will degrade
|
|
|
|
substantially. When in doubt, leave the hostname and port number blank.</p>
|
2007-07-07 20:03:50 +00:00
|
|
|
<p><b>Note: changing any of these settings will terminate all of your connections and effectively
|
2006-07-04 21:17:44 +00:00
|
|
|
restart your router.</b>
|
|
|
|
<hr />
|
2007-03-07 21:05:21 +00:00
|
|
|
<!--
|
2005-11-26 09:16:11 +00:00
|
|
|
<b>Dynamic Router Keys: </b>
|
|
|
|
<input type="checkbox" name="dynamicKeys" value="true" <jsp:getProperty name="nethelper" property="dynamicKeysChecked" /> /><br />
|
|
|
|
<p>
|
|
|
|
This setting causes your router identity to be regenerated every time your IP address
|
|
|
|
changes. If you have a dynamic IP this option can speed up your reintegration into
|
|
|
|
the network (since people will have shitlisted your old router identity), and, for
|
|
|
|
very weak adversaries, help frustrate trivial
|
|
|
|
<a href="http://www.i2p.net/how_threatmodel#intersection">intersection
|
|
|
|
attacks</a> against the NetDB. Your different router identities would only be
|
|
|
|
'hidden' among other I2P users at your ISP, and further analysis would link
|
|
|
|
the router identities further.</p>
|
|
|
|
<p>Note that when I2P detects an IP address change, it will automatically
|
|
|
|
initiate a restart in order to rekey and to disconnect from peers before they
|
|
|
|
update their profiles - any long lasting client connections will be disconnected,
|
|
|
|
though such would likely already be the case anyway, since the IP address changed.
|
|
|
|
</p>
|
|
|
|
<hr />
|
2007-03-07 21:05:21 +00:00
|
|
|
-->
|
2004-07-31 02:34:24 +00:00
|
|
|
<input type="submit" name="save" value="Save changes" /> <input type="reset" value="Cancel" /><br />
|
2004-07-24 02:06:07 +00:00
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|