Currently I'm using a LAN Tunneling service called Evolve and when I try to join my friend, it always tells me that the connection timed out. Any ideas?
Connection Timed Out in Minecraft?
Has your friend set up port forwarding on their router to accommodate Evolve? Without doing this, their router doesn't know where to send the data from your computer & will "refuse delivery" of those packets until your computer times out.
Have your friend go into their router settings (this will vary by manufacturer & network settings, but will typically be, OR -- They will need their login details for the router as well, but the default settings will be noted on the router) & set up port-forwarding to allow this. They will need to select the port number noted by Evolve (something like 4444) & have it forwarded to their computer (via the LAN's IP address).
If they need to find out the necessary network information, pull up a command prompt (do a search for "CMD" with Cortana will pull this up). Then enter the command "ipconfig" & it'll show you the various network connections your computer supports & the one(s) in use. For the connection in use, the "Default Gateway" is your router's address (Place this in your web browser to access the router settings) & "IPv4 address" is your computer's LAN address (this is what your router assigned to your computer).
CAUTION: Please be aware that LAN addresses are assigned dynamically in a "First Come, First Serve" basis. If you disconnect from the network for whatever reason (turning off your computer or physically removing it from said network) & later return, your LAN address may have changed. It is possible to assign a static LAN address, but it's recommended to reserve an address that's well outside your logical range of devices that would connect to said network (if your router is located at 10.0.0.1, you may consider using 10.0.0.100 or 10.0.1.1 since it's unlikely that you'll have more than 100 or 250 devices on your network respectively) to avoid device conflicts (as router won't understand which device to send packets to & router packets from IF there's more than one device using the same IP address).
Once they straighten out their router settings, things should better. HOWEVER, for multiplayer games in Minecraft, it's generally easier to set up & run a standalone private server. While it requires the same router configurations, the "vanilla" server software is generally less demanding to run & allows you to play on the server without your friend being in the game world as well (which is required on the LAN option)… But that's more of a personal choice.
Hope this helps!